.class public abstract Landroid/text/Layout;
.super Ljava/lang/Object;
.source "Layout.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Landroid/text/Layout$Alignment;,
        Landroid/text/Layout$SpannedEllipsizer;,
        Landroid/text/Layout$Ellipsizer;,
        Landroid/text/Layout$Directions;
    }
.end annotation


# static fields
.field private static final DEBUG:Z = false

.field static final DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions; = null

.field static final DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions; = null

.field public static final DIR_LEFT_TO_RIGHT:I = 0x1

.field static final DIR_REQUEST_DEFAULT_LTR:I = 0x2

.field static final DIR_REQUEST_DEFAULT_RTL:I = -0x2

.field static final DIR_REQUEST_LTR:I = 0x1

.field static final DIR_REQUEST_RTL:I = -0x1

.field public static final DIR_RIGHT_TO_LEFT:I = -0x1

.field static final EMOJI_FACTORY:Landroid/emoji/EmojiFactory; = null

#the value of this static final field might be set in the static constructor
.field static final MAX_EMOJI:I = 0x0

#the value of this static final field might be set in the static constructor
.field static final MIN_EMOJI:I = 0x0

.field private static final NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle; = null

.field private static final TAB_INCREMENT:I = 0x14

.field private static sTempRect:Landroid/graphics/Rect;


# instance fields
.field private mAlignment:Landroid/text/Layout$Alignment;

.field private mEmojiRect:Landroid/graphics/RectF;

.field private mPaint:Landroid/text/TextPaint;

.field private mSpacingAdd:F

.field private mSpacingMult:F

.field private mSpannedText:Z

.field private mText:Ljava/lang/CharSequence;

.field private mWidth:I

.field mWorkPaint:Landroid/text/TextPaint;


# direct methods
.method static constructor <clinit>()V
    .registers 4

    .prologue
    const/4 v1, -0x1

    .line 48
    const-class v0, Landroid/text/style/ParagraphStyle;

    invoke-static {v0}, Lcom/android/internal/util/ArrayUtils;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object;

    move-result-object v0

    check-cast v0, [Landroid/text/style/ParagraphStyle;

    sput-object v0, Landroid/text/Layout;->NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;

    .line 51
    invoke-static {}, Landroid/emoji/EmojiFactory;->newAvailableInstance()Landroid/emoji/EmojiFactory;

    move-result-object v0

    sput-object v0, Landroid/text/Layout;->EMOJI_FACTORY:Landroid/emoji/EmojiFactory;

    .line 56
    sget-object v0, Landroid/text/Layout;->EMOJI_FACTORY:Landroid/emoji/EmojiFactory;

    if-eqz v0, :cond_49

    .line 57
    sget-object v0, Landroid/text/Layout;->EMOJI_FACTORY:Landroid/emoji/EmojiFactory;

    invoke-virtual {v0}, Landroid/emoji/EmojiFactory;->getMinimumAndroidPua()I

    move-result v0

    sput v0, Landroid/text/Layout;->MIN_EMOJI:I

    .line 58
    sget-object v0, Landroid/text/Layout;->EMOJI_FACTORY:Landroid/emoji/EmojiFactory;

    invoke-virtual {v0}, Landroid/emoji/EmojiFactory;->getMaximumAndroidPua()I

    move-result v0

    sput v0, Landroid/text/Layout;->MAX_EMOJI:I

    .line 2403
    :goto_25
    new-instance v0, Landroid/graphics/Rect;

    invoke-direct {v0}, Landroid/graphics/Rect;-><init>()V

    sput-object v0, Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;

    .line 2424
    new-instance v0, Landroid/text/Layout$Directions;

    const/4 v1, 0x1

    new-array v1, v1, [S

    const/4 v2, 0x0

    const/16 v3, 0x7fff

    aput-short v3, v1, v2

    invoke-direct {v0, v1}, Landroid/text/Layout$Directions;-><init>([S)V

    sput-object v0, Landroid/text/Layout;->DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;

    .line 2426
    new-instance v0, Landroid/text/Layout$Directions;

    const/4 v1, 0x2

    new-array v1, v1, [S

    fill-array-data v1, :array_4e

    invoke-direct {v0, v1}, Landroid/text/Layout$Directions;-><init>([S)V

    sput-object v0, Landroid/text/Layout;->DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions;

    return-void

    .line 60
    :cond_49
    sput v1, Landroid/text/Layout;->MIN_EMOJI:I

    .line 61
    sput v1, Landroid/text/Layout;->MAX_EMOJI:I

    goto :goto_25

    .line 2426
    :array_4e
    .array-data 0x2
        0x0t 0x0t
        0xfft 0x7ft
    .end array-data
.end method

.method protected constructor <init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
    .registers 10
    .parameter "text"
    .parameter "paint"
    .parameter "width"
    .parameter "align"
    .parameter "spacingMult"
    .parameter "spacingAdd"

    .prologue
    .line 121
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 2400
    sget-object v0, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;

    iput-object v0, p0, Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;

    .line 122
    if-gez p3, :cond_28

    .line 123
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "Layout: "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, " < 0"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 125
    :cond_28
    iput-object p1, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    .line 126
    iput-object p2, p0, Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;

    .line 127
    new-instance v0, Landroid/text/TextPaint;

    invoke-direct {v0}, Landroid/text/TextPaint;-><init>()V

    iput-object v0, p0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    .line 128
    iput p3, p0, Landroid/text/Layout;->mWidth:I

    .line 129
    iput-object p4, p0, Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;

    .line 130
    iput p5, p0, Landroid/text/Layout;->mSpacingMult:F

    .line 131
    iput p6, p0, Landroid/text/Layout;->mSpacingAdd:F

    .line 132
    instance-of v0, p1, Landroid/text/Spanned;

    iput-boolean v0, p0, Landroid/text/Layout;->mSpannedText:Z

    .line 133
    return-void
.end method

.method static synthetic access$100(Landroid/text/Layout;III[CI)V
    .registers 6
    .parameter "x0"
    .parameter "x1"
    .parameter "x2"
    .parameter "x3"
    .parameter "x4"
    .parameter "x5"

    .prologue
    .line 46
    invoke-direct/range {p0 .. p5}, Landroid/text/Layout;->ellipsize(III[CI)V

    return-void
.end method

.method private addSelection(IIIIILandroid/graphics/Path;)V
    .registers 26
    .parameter "line"
    .parameter "start"
    .parameter "end"
    .parameter "top"
    .parameter "bottom"
    .parameter "dest"

    .prologue
    .line 1657
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v16

    .line 1658
    .local v16, linestart:I
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineEnd(I)I

    move-result v15

    .line 1659
    .local v15, lineend:I
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineDirections(I)Landroid/text/Layout$Directions;

    move-result-object v11

    .line 1661
    .local v11, dirs:Landroid/text/Layout$Directions;
    move v0, v15

    move/from16 v1, v16

    if-le v0, v1, :cond_23

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v5, v0

    const/4 v6, 0x1

    sub-int v6, v15, v6

    invoke-interface {v5, v6}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v5

    const/16 v6, 0xa

    if-ne v5, v6, :cond_23

    .line 1662
    add-int/lit8 v15, v15, -0x1

    .line 1664
    :cond_23
    move/from16 v13, v16

    .line 1665
    .local v13, here:I
    const/4 v14, 0x0

    .local v14, i:I
    :goto_26
    invoke-static {v11}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v5

    array-length v5, v5

    if-ge v14, v5, :cond_8a

    .line 1666
    invoke-static {v11}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v5

    aget-short v5, v5, v14

    add-int v18, v13, v5

    .line 1667
    .local v18, there:I
    move/from16 v0, v18

    move v1, v15

    if-le v0, v1, :cond_3c

    .line 1668
    move/from16 v18, v15

    .line 1670
    :cond_3c
    move/from16 v0, p2

    move/from16 v1, v18

    if-gt v0, v1, :cond_85

    move/from16 v0, p3

    move v1, v13

    if-lt v0, v1, :cond_85

    .line 1671
    move/from16 v0, p2

    move v1, v13

    invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I

    move-result v17

    .line 1672
    .local v17, st:I
    move/from16 v0, p3

    move/from16 v1, v18

    invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I

    move-result v12

    .line 1674
    .local v12, en:I
    move/from16 v0, v17

    move v1, v12

    if-eq v0, v1, :cond_85

    .line 1675
    const/4 v5, 0x0

    const/4 v6, 0x0

    move-object/from16 v0, p0

    move/from16 v1, v17

    move v2, v5

    move v3, v6

    move/from16 v4, p1

    invoke-direct {v0, v1, v2, v3, v4}, Landroid/text/Layout;->getHorizontal(IZZI)F

    move-result v6

    .line 1676
    .local v6, h1:F
    const/4 v5, 0x1

    const/4 v7, 0x0

    move-object/from16 v0, p0

    move v1, v12

    move v2, v5

    move v3, v7

    move/from16 v4, p1

    invoke-direct {v0, v1, v2, v3, v4}, Landroid/text/Layout;->getHorizontal(IZZI)F

    move-result v8

    .line 1678
    .local v8, h2:F
    move/from16 v0, p4

    int-to-float v0, v0

    move v7, v0

    move/from16 v0, p5

    int-to-float v0, v0

    move v9, v0

    sget-object v10, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;

    move-object/from16 v5, p6

    invoke-virtual/range {v5 .. v10}, Landroid/graphics/Path;->addRect(FFFFLandroid/graphics/Path$Direction;)V

    .line 1682
    .end local v6           #h1:F
    .end local v8           #h2:F
    .end local v12           #en:I
    .end local v17           #st:I
    :cond_85
    move/from16 v13, v18

    .line 1665
    add-int/lit8 v14, v14, 0x1

    goto :goto_26

    .line 1684
    .end local v18           #there:I
    :cond_8a
    return-void
.end method

.method private drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;FIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z[Ljava/lang/Object;)V
    .registers 46
    .parameter "canvas"
    .parameter "text"
    .parameter "start"
    .parameter "end"
    .parameter "dir"
    .parameter "directions"
    .parameter "x"
    .parameter "top"
    .parameter "y"
    .parameter "bottom"
    .parameter "paint"
    .parameter "workPaint"
    .parameter "hasTabs"
    .parameter "parspans"

    .prologue
    .line 1851
    if-nez p13, :cond_b7

    .line 1852
    sget-object v5, Landroid/text/Layout;->DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;

    move-object/from16 v0, p6

    move-object v1, v5

    if-ne v0, v1, :cond_26

    .line 1856
    const/4 v10, 0x0

    const/16 v17, 0x0

    move-object/from16 v5, p1

    move-object/from16 v6, p2

    move/from16 v7, p3

    move/from16 v8, p4

    move/from16 v9, p5

    move/from16 v11, p7

    move/from16 v12, p8

    move/from16 v13, p9

    move/from16 v14, p10

    move-object/from16 v15, p11

    move-object/from16 v16, p12

    invoke-static/range {v5 .. v17}, Landroid/text/Styled;->drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIIZFIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z)F

    .line 1932
    :cond_25
    :goto_25
    return-void

    .line 1859
    :cond_26
    const/16 v20, 0x0

    .line 1865
    .local v20, buf:[C
    :goto_28
    const/16 v22, 0x0

    .line 1867
    .local v22, h:F
    const/16 v23, 0x0

    .line 1868
    .local v23, here:I
    const/16 v24, 0x0

    .local v24, i:I
    :goto_2e
    invoke-static/range {p6 .. p6}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v5

    array-length v5, v5

    move/from16 v0, v24

    move v1, v5

    if-ge v0, v1, :cond_1bb

    .line 1869
    invoke-static/range {p6 .. p6}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v5

    aget-short v5, v5, v24

    add-int v29, v23, v5

    .line 1870
    .local v29, there:I
    sub-int v5, p4, p3

    move/from16 v0, v29

    move v1, v5

    if-le v0, v1, :cond_49

    .line 1871
    sub-int v29, p4, p3

    .line 1873
    :cond_49
    move/from16 v27, v23

    .line 1874
    .local v27, segstart:I
    if-eqz p13, :cond_cc

    move/from16 v25, v23

    .local v25, j:I
    :goto_4f
    move/from16 v0, v25

    move/from16 v1, v29

    if-gt v0, v1, :cond_1b5

    .line 1875
    move/from16 v0, v25

    move/from16 v1, v29

    if-eq v0, v1, :cond_61

    aget-char v5, v20, v25

    const/16 v6, 0x9

    if-ne v5, v6, :cond_d6

    .line 1876
    :cond_61
    add-int v7, p3, v27

    add-int v8, p3, v25

    and-int/lit8 v5, v24, 0x1

    if-eqz v5, :cond_cf

    const/4 v5, 0x1

    move v10, v5

    :goto_6b
    add-float v11, p7, v22

    add-int v5, p3, v25

    move v0, v5

    move/from16 v1, p4

    if-eq v0, v1, :cond_d2

    const/4 v5, 0x1

    move/from16 v17, v5

    :goto_77
    move-object/from16 v5, p1

    move-object/from16 v6, p2

    move/from16 v9, p5

    move/from16 v12, p8

    move/from16 v13, p9

    move/from16 v14, p10

    move-object/from16 v15, p11

    move-object/from16 v16, p12

    invoke-static/range {v5 .. v17}, Landroid/text/Styled;->drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIIZFIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z)F

    move-result v5

    add-float v22, v22, v5

    .line 1882
    move/from16 v0, v25

    move/from16 v1, v29

    if-eq v0, v1, :cond_b2

    aget-char v5, v20, v25

    const/16 v6, 0x9

    if-ne v5, v6, :cond_b2

    .line 1883
    move/from16 v0, p5

    int-to-float v0, v0

    move v5, v0

    move/from16 v0, p5

    int-to-float v0, v0

    move v6, v0

    mul-float v6, v6, v22

    move-object/from16 v0, p2

    move/from16 v1, p3

    move/from16 v2, p4

    move v3, v6

    move-object/from16 v4, p14

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/Layout;->nextTab(Ljava/lang/CharSequence;IIF[Ljava/lang/Object;)F

    move-result v6

    mul-float v22, v5, v6

    .line 1885
    :cond_b2
    add-int/lit8 v27, v25, 0x1

    .line 1874
    :cond_b4
    :goto_b4
    add-int/lit8 v25, v25, 0x1

    goto :goto_4f

    .line 1861
    .end local v20           #buf:[C
    .end local v22           #h:F
    .end local v23           #here:I
    .end local v24           #i:I
    .end local v25           #j:I
    .end local v27           #segstart:I
    .end local v29           #there:I
    :cond_b7
    sub-int v5, p4, p3

    invoke-static {v5}, Landroid/text/TextUtils;->obtain(I)[C

    move-result-object v20

    .line 1862
    .restart local v20       #buf:[C
    const/4 v5, 0x0

    move-object/from16 v0, p2

    move/from16 v1, p3

    move/from16 v2, p4

    move-object/from16 v3, v20

    move v4, v5

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V

    goto/16 :goto_28

    .restart local v22       #h:F
    .restart local v23       #here:I
    .restart local v24       #i:I
    .restart local v27       #segstart:I
    .restart local v29       #there:I
    :cond_cc
    move/from16 v25, v29

    .line 1874
    goto :goto_4f

    .line 1876
    .restart local v25       #j:I
    :cond_cf
    const/4 v5, 0x0

    move v10, v5

    goto :goto_6b

    :cond_d2
    const/4 v5, 0x0

    move/from16 v17, v5

    goto :goto_77

    .line 1886
    :cond_d6
    if-eqz p13, :cond_b4

    aget-char v5, v20, v25

    const v6, 0xd800

    if-lt v5, v6, :cond_b4

    aget-char v5, v20, v25

    const v6, 0xdfff

    if-gt v5, v6, :cond_b4

    add-int/lit8 v5, v25, 0x1

    move v0, v5

    move/from16 v1, v29

    if-ge v0, v1, :cond_b4

    .line 1887
    move-object/from16 v0, v20

    move/from16 v1, v25

    invoke-static {v0, v1}, Ljava/lang/Character;->codePointAt([CI)I

    move-result v21

    .line 1889
    .local v21, emoji:I
    sget v5, Landroid/text/Layout;->MIN_EMOJI:I

    move/from16 v0, v21

    move v1, v5

    if-lt v0, v1, :cond_b4

    sget v5, Landroid/text/Layout;->MAX_EMOJI:I

    move/from16 v0, v21

    move v1, v5

    if-gt v0, v1, :cond_b4

    .line 1890
    sget-object v5, Landroid/text/Layout;->EMOJI_FACTORY:Landroid/emoji/EmojiFactory;

    move-object v0, v5

    move/from16 v1, v21

    invoke-virtual {v0, v1}, Landroid/emoji/EmojiFactory;->getBitmapFromAndroidPua(I)Landroid/graphics/Bitmap;

    move-result-object v19

    .line 1893
    .local v19, bm:Landroid/graphics/Bitmap;
    if-eqz v19, :cond_b4

    .line 1894
    add-int v7, p3, v27

    add-int v8, p3, v25

    and-int/lit8 v5, v24, 0x1

    if-eqz v5, :cond_1ac

    const/4 v5, 0x1

    move v10, v5

    :goto_118
    add-float v11, p7, v22

    add-int v5, p3, v25

    move v0, v5

    move/from16 v1, p4

    if-eq v0, v1, :cond_1b0

    const/4 v5, 0x1

    move/from16 v17, v5

    :goto_124
    move-object/from16 v5, p1

    move-object/from16 v6, p2

    move/from16 v9, p5

    move/from16 v12, p8

    move/from16 v13, p9

    move/from16 v14, p10

    move-object/from16 v15, p11

    move-object/from16 v16, p12

    invoke-static/range {v5 .. v17}, Landroid/text/Styled;->drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIIZFIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z)F

    move-result v5

    add-float v22, v22, v5

    .line 1900
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mEmojiRect:Landroid/graphics/RectF;

    move-object v5, v0

    if-nez v5, :cond_14b

    .line 1901
    new-instance v5, Landroid/graphics/RectF;

    invoke-direct {v5}, Landroid/graphics/RectF;-><init>()V

    move-object v0, v5

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/Layout;->mEmojiRect:Landroid/graphics/RectF;

    .line 1904
    :cond_14b
    move-object/from16 v0, p12

    move-object/from16 v1, p11

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->set(Landroid/text/TextPaint;)V

    .line 1905
    add-int v8, p3, v25

    add-int v5, p3, v25

    add-int/lit8 v9, v5, 0x1

    const/4 v10, 0x0

    move-object/from16 v5, p11

    move-object/from16 v6, p12

    move-object/from16 v7, p2

    invoke-static/range {v5 .. v10}, Landroid/text/Styled;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)F

    .line 1909
    invoke-virtual/range {v19 .. v19}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v5

    move v0, v5

    int-to-float v0, v0

    move/from16 v18, v0

    .line 1910
    .local v18, bitmapHeight:F
    invoke-virtual/range {p12 .. p12}, Landroid/text/TextPaint;->ascent()F

    move-result v5

    move v0, v5

    neg-float v0, v0

    move/from16 v28, v0

    .line 1911
    .local v28, textHeight:F
    div-float v26, v28, v18

    .line 1912
    .local v26, scale:F
    invoke-virtual/range {v19 .. v19}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v5

    int-to-float v5, v5

    mul-float v30, v5, v26

    .line 1914
    .local v30, width:F
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mEmojiRect:Landroid/graphics/RectF;

    move-object v5, v0

    add-float v6, p7, v22

    move/from16 v0, p9

    int-to-float v0, v0

    move v7, v0

    sub-float v7, v7, v28

    add-float v8, p7, v22

    add-float v8, v8, v30

    move/from16 v0, p9

    int-to-float v0, v0

    move v9, v0

    invoke-virtual {v5, v6, v7, v8, v9}, Landroid/graphics/RectF;->set(FFFF)V

    .line 1917
    const/4 v5, 0x0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mEmojiRect:Landroid/graphics/RectF;

    move-object v6, v0

    move-object/from16 v0, p1

    move-object/from16 v1, v19

    move-object v2, v5

    move-object v3, v6

    move-object/from16 v4, p11

    invoke-virtual {v0, v1, v2, v3, v4}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V

    .line 1918
    add-float v22, v22, v30

    .line 1920
    add-int/lit8 v25, v25, 0x1

    .line 1921
    add-int/lit8 v27, v25, 0x1

    goto/16 :goto_b4

    .line 1894
    .end local v18           #bitmapHeight:F
    .end local v26           #scale:F
    .end local v28           #textHeight:F
    .end local v30           #width:F
    :cond_1ac
    const/4 v5, 0x0

    move v10, v5

    goto/16 :goto_118

    :cond_1b0
    const/4 v5, 0x0

    move/from16 v17, v5

    goto/16 :goto_124

    .line 1927
    .end local v19           #bm:Landroid/graphics/Bitmap;
    .end local v21           #emoji:I
    :cond_1b5
    move/from16 v23, v29

    .line 1868
    add-int/lit8 v24, v24, 0x1

    goto/16 :goto_2e

    .line 1930
    .end local v25           #j:I
    .end local v27           #segstart:I
    .end local v29           #there:I
    :cond_1bb
    if-eqz p13, :cond_25

    .line 1931
    invoke-static/range {v20 .. v20}, Landroid/text/TextUtils;->recycle([C)V

    goto/16 :goto_25
.end method

.method private ellipsize(III[CI)V
    .registers 13
    .parameter "start"
    .parameter "end"
    .parameter "line"
    .parameter "dest"
    .parameter "destoff"

    .prologue
    .line 2248
    invoke-virtual {p0, p3}, Landroid/text/Layout;->getEllipsisCount(I)I

    move-result v2

    .line 2250
    .local v2, ellipsisCount:I
    if-nez v2, :cond_7

    .line 2272
    :cond_6
    return-void

    .line 2254
    :cond_7
    invoke-virtual {p0, p3}, Landroid/text/Layout;->getEllipsisStart(I)I

    move-result v3

    .line 2255
    .local v3, ellipsisStart:I
    invoke-virtual {p0, p3}, Landroid/text/Layout;->getLineStart(I)I

    move-result v5

    .line 2257
    .local v5, linestart:I
    move v4, v3

    .local v4, i:I
    :goto_10
    add-int v6, v3, v2

    if-ge v4, v6, :cond_6

    .line 2260
    if-ne v4, v3, :cond_26

    .line 2261
    const/16 v1, 0x2026

    .line 2266
    .local v1, c:C
    :goto_18
    add-int v0, v4, v5

    .line 2268
    .local v0, a:I
    if-lt v0, p1, :cond_23

    if-ge v0, p2, :cond_23

    .line 2269
    add-int v6, p5, v0

    sub-int/2addr v6, p1

    aput-char v1, p4, v6

    .line 2257
    :cond_23
    add-int/lit8 v4, v4, 0x1

    goto :goto_10

    .line 2263
    .end local v0           #a:I
    .end local v1           #c:C
    :cond_26
    const v1, 0xfeff

    .restart local v1       #c:C
    goto :goto_18
.end method

.method public static getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
    .registers 14
    .parameter "source"
    .parameter "start"
    .parameter "end"
    .parameter "paint"

    .prologue
    const/4 v5, 0x0

    .line 83
    const/4 v8, 0x0

    .line 84
    .local v8, need:F
    new-instance v1, Landroid/text/TextPaint;

    invoke-direct {v1}, Landroid/text/TextPaint;-><init>()V

    .line 87
    .local v1, workPaint:Landroid/text/TextPaint;
    move v3, p1

    .local v3, i:I
    :goto_8
    if-gt v3, p2, :cond_24

    .line 88
    const/16 v0, 0xa

    invoke-static {p0, v0, v3, p2}, Landroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I

    move-result v4

    .line 90
    .local v4, next:I
    if-gez v4, :cond_13

    .line 91
    move v4, p2

    .line 94
    :cond_13
    const/4 v6, 0x1

    move-object v0, p3

    move-object v2, p0

    move-object v7, v5

    invoke-static/range {v0 .. v7}, Landroid/text/Layout;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;Z[Ljava/lang/Object;)F

    move-result v9

    .line 97
    .local v9, w:F
    cmpl-float v0, v9, v8

    if-lez v0, :cond_20

    .line 98
    move v8, v9

    .line 100
    :cond_20
    add-int/lit8 v4, v4, 0x1

    .line 87
    move v3, v4

    goto :goto_8

    .line 103
    .end local v4           #next:I
    .end local v9           #w:F
    :cond_24
    return v8
.end method

.method public static getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
    .registers 4
    .parameter "source"
    .parameter "paint"

    .prologue
    .line 73
    const/4 v0, 0x0

    invoke-interface {p0}, Ljava/lang/CharSequence;->length()I

    move-result v1

    invoke-static {p0, v0, v1, p1}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F

    move-result v0

    return v0
.end method

.method private getHorizontal(IZZ)F
    .registers 6
    .parameter "offset"
    .parameter "trailing"
    .parameter "alt"

    .prologue
    .line 901
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v0

    .line 903
    .local v0, line:I
    invoke-direct {p0, p1, p2, p3, v0}, Landroid/text/Layout;->getHorizontal(IZZI)F

    move-result v1

    return v1
.end method

.method private getHorizontal(IZZI)F
    .registers 33
    .parameter "offset"
    .parameter "trailing"
    .parameter "alt"
    .parameter "line"

    .prologue
    .line 908
    move-object/from16 v0, p0

    move/from16 v1, p4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v5

    .line 909
    .local v5, start:I
    move-object/from16 v0, p0

    move/from16 v1, p4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineVisibleEnd(I)I

    move-result v7

    .line 910
    .local v7, end:I
    move-object/from16 v0, p0

    move/from16 v1, p4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getParagraphDirection(I)I

    move-result v8

    .line 911
    .local v8, dir:I
    move-object/from16 v0, p0

    move/from16 v1, p4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineContainsTab(I)Z

    move-result v12

    .line 912
    .local v12, tab:Z
    move-object/from16 v0, p0

    move/from16 v1, p4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineDirections(I)Landroid/text/Layout$Directions;

    move-result-object v9

    .line 914
    .local v9, directions:Landroid/text/Layout$Directions;
    const/4 v13, 0x0

    .line 915
    .local v13, tabs:[Landroid/text/style/TabStopSpan;
    if-eqz v12, :cond_43

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v2, v0

    instance-of v2, v2, Landroid/text/Spanned;

    if-eqz v2, :cond_43

    .line 916
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v2, v0

    check-cast v2, Landroid/text/Spanned;

    const-class v3, Landroid/text/style/TabStopSpan;

    invoke-interface {v2, v5, v7, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v13

    .end local v13           #tabs:[Landroid/text/style/TabStopSpan;
    check-cast v13, [Landroid/text/style/TabStopSpan;

    .line 919
    .restart local v13       #tabs:[Landroid/text/style/TabStopSpan;
    :cond_43
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;

    move-object v2, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v3, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v4, v0

    move/from16 v6, p1

    move/from16 v10, p2

    move/from16 v11, p3

    invoke-static/range {v2 .. v13}, Landroid/text/Layout;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IIIILandroid/text/Layout$Directions;ZZZ[Ljava/lang/Object;)F

    move-result v27

    .line 922
    .local v27, wid:F
    move/from16 v0, p1

    move v1, v7

    if-le v0, v1, :cond_84

    .line 923
    const/4 v2, -0x1

    if-ne v8, v2, :cond_ad

    .line 924
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;

    move-object v14, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v15, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    const/16 v19, 0x0

    move/from16 v17, v7

    move/from16 v18, p1

    move/from16 v20, v12

    move-object/from16 v21, v13

    invoke-static/range {v14 .. v21}, Landroid/text/Layout;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;Z[Ljava/lang/Object;)F

    move-result v2

    sub-float v27, v27, v2

    .line 931
    :cond_84
    :goto_84
    move-object/from16 v0, p0

    move/from16 v1, p4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getParagraphAlignment(I)Landroid/text/Layout$Alignment;

    move-result-object v22

    .line 932
    .local v22, align:Landroid/text/Layout$Alignment;
    move-object/from16 v0, p0

    move/from16 v1, p4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getParagraphLeft(I)I

    move-result v24

    .line 933
    .local v24, left:I
    move-object/from16 v0, p0

    move/from16 v1, p4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getParagraphRight(I)I

    move-result v26

    .line 935
    .local v26, right:I
    sget-object v2, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;

    move-object/from16 v0, v22

    move-object v1, v2

    if-ne v0, v1, :cond_d5

    .line 936
    const/4 v2, -0x1

    if-ne v8, v2, :cond_ce

    .line 937
    move/from16 v0, v26

    int-to-float v0, v0

    move v2, v0

    add-float v2, v2, v27

    .line 955
    :goto_ac
    return v2

    .line 927
    .end local v22           #align:Landroid/text/Layout$Alignment;
    .end local v24           #left:I
    .end local v26           #right:I
    :cond_ad
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;

    move-object v14, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v15, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    const/16 v19, 0x0

    move/from16 v17, v7

    move/from16 v18, p1

    move/from16 v20, v12

    move-object/from16 v21, v13

    invoke-static/range {v14 .. v21}, Landroid/text/Layout;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;Z[Ljava/lang/Object;)F

    move-result v2

    add-float v27, v27, v2

    goto :goto_84

    .line 939
    .restart local v22       #align:Landroid/text/Layout$Alignment;
    .restart local v24       #left:I
    .restart local v26       #right:I
    :cond_ce
    move/from16 v0, v24

    int-to-float v0, v0

    move v2, v0

    add-float v2, v2, v27

    goto :goto_ac

    .line 942
    :cond_d5
    move-object/from16 v0, p0

    move/from16 v1, p4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineMax(I)F

    move-result v25

    .line 944
    .local v25, max:F
    sget-object v2, Landroid/text/Layout$Alignment;->ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;

    move-object/from16 v0, v22

    move-object v1, v2

    if-ne v0, v1, :cond_f9

    .line 945
    const/4 v2, -0x1

    if-ne v8, v2, :cond_f0

    .line 946
    move/from16 v0, v24

    int-to-float v0, v0

    move v2, v0

    add-float v2, v2, v25

    add-float v2, v2, v27

    goto :goto_ac

    .line 948
    :cond_f0
    move/from16 v0, v26

    int-to-float v0, v0

    move v2, v0

    sub-float v2, v2, v25

    add-float v2, v2, v27

    goto :goto_ac

    .line 950
    :cond_f9
    move/from16 v0, v25

    float-to-int v0, v0

    move v2, v0

    and-int/lit8 v23, v2, -0x2

    .line 952
    .local v23, imax:I
    const/4 v2, -0x1

    if-ne v8, v2, :cond_10e

    .line 953
    sub-int v2, v26, v24

    sub-int v2, v2, v23

    div-int/lit8 v2, v2, 0x2

    sub-int v2, v26, v2

    int-to-float v2, v2

    add-float v2, v2, v27

    goto :goto_ac

    .line 955
    :cond_10e
    sub-int v2, v26, v24

    sub-int v2, v2, v23

    div-int/lit8 v2, v2, 0x2

    add-int v2, v2, v24

    int-to-float v2, v2

    add-float v2, v2, v27

    goto :goto_ac
.end method

.method private getLineMax(I[Ljava/lang/Object;Z)F
    .registers 12
    .parameter "line"
    .parameter "tabs"
    .parameter "full"

    .prologue
    .line 1030
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v3

    .line 1033
    .local v3, start:I
    if-eqz p3, :cond_2f

    .line 1034
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineEnd(I)I

    move-result v4

    .line 1038
    .local v4, end:I
    :goto_a
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineContainsTab(I)Z

    move-result v6

    .line 1040
    .local v6, tab:Z
    if-nez p2, :cond_22

    if-eqz v6, :cond_22

    iget-object v0, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    instance-of v0, v0, Landroid/text/Spanned;

    if-eqz v0, :cond_22

    .line 1041
    iget-object v0, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    check-cast v0, Landroid/text/Spanned;

    const-class v1, Landroid/text/style/TabStopSpan;

    invoke-interface {v0, v3, v4, v1}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object p2

    .line 1044
    :cond_22
    iget-object v0, p0, Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;

    iget-object v1, p0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    iget-object v2, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    const/4 v5, 0x0

    move-object v7, p2

    invoke-static/range {v0 .. v7}, Landroid/text/Layout;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;Z[Ljava/lang/Object;)F

    move-result v0

    return v0

    .line 1036
    .end local v4           #end:I
    .end local v6           #tab:Z
    :cond_2f
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineVisibleEnd(I)I

    move-result v4

    .restart local v4       #end:I
    goto :goto_a
.end method

.method private getLineVisibleEnd(III)I
    .registers 8
    .parameter "line"
    .parameter "start"
    .parameter "end"

    .prologue
    const/4 v3, 0x1

    .line 1194
    iget-object v1, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    .line 1196
    .local v1, text:Ljava/lang/CharSequence;
    invoke-virtual {p0}, Landroid/text/Layout;->getLineCount()I

    move-result v2

    sub-int/2addr v2, v3

    if-ne p1, v2, :cond_e

    move v2, p3

    .line 1213
    :goto_b
    return v2

    .line 1200
    .local v0, ch:C
    :cond_c
    add-int/lit8 p3, p3, -0x1

    .end local v0           #ch:C
    :cond_e
    if-le p3, p2, :cond_25

    .line 1201
    sub-int v2, p3, v3

    invoke-interface {v1, v2}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v0

    .line 1203
    .restart local v0       #ch:C
    const/16 v2, 0xa

    if-ne v0, v2, :cond_1d

    .line 1204
    sub-int v2, p3, v3

    goto :goto_b

    .line 1207
    :cond_1d
    const/16 v2, 0x20

    if-eq v0, v2, :cond_c

    const/16 v2, 0x9

    if-eq v0, v2, :cond_c

    .end local v0           #ch:C
    :cond_25
    move v2, p3

    .line 1213
    goto :goto_b
.end method

.method private getOffsetAtStartOf(I)I
    .registers 12
    .parameter "offset"

    .prologue
    .line 1441
    if-nez p1, :cond_4

    .line 1442
    const/4 v8, 0x0

    .line 1467
    :goto_3
    return v8

    .line 1444
    :cond_4
    iget-object v7, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    .line 1445
    .local v7, text:Ljava/lang/CharSequence;
    invoke-interface {v7, p1}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v1

    .line 1447
    .local v1, c:C
    const v8, 0xdc00

    if-lt v1, v8, :cond_27

    const v8, 0xdfff

    if-gt v1, v8, :cond_27

    .line 1448
    const/4 v8, 0x1

    sub-int v8, p1, v8

    invoke-interface {v7, v8}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v2

    .line 1450
    .local v2, c1:C
    const v8, 0xd800

    if-lt v2, v8, :cond_27

    const v8, 0xdbff

    if-gt v2, v8, :cond_27

    .line 1451
    add-int/lit8 p1, p1, -0x1

    .line 1454
    .end local v2           #c1:C
    :cond_27
    iget-boolean v8, p0, Landroid/text/Layout;->mSpannedText:Z

    if-eqz v8, :cond_57

    .line 1455
    move-object v0, v7

    check-cast v0, Landroid/text/Spanned;

    move-object v8, v0

    const-class v9, Landroid/text/style/ReplacementSpan;

    invoke-interface {v8, p1, p1, v9}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v5

    check-cast v5, [Landroid/text/style/ReplacementSpan;

    .line 1458
    .local v5, spans:[Landroid/text/style/ReplacementSpan;
    const/4 v4, 0x0

    .local v4, i:I
    :goto_38
    array-length v8, v5

    if-ge v4, v8, :cond_57

    .line 1459
    move-object v0, v7

    check-cast v0, Landroid/text/Spanned;

    move-object v8, v0

    aget-object v9, v5, v4

    invoke-interface {v8, v9}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I

    move-result v6

    .line 1460
    .local v6, start:I
    move-object v0, v7

    check-cast v0, Landroid/text/Spanned;

    move-object v8, v0

    aget-object v9, v5, v4

    invoke-interface {v8, v9}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I

    move-result v3

    .line 1462
    .local v3, end:I
    if-ge v6, p1, :cond_54

    if-le v3, p1, :cond_54

    .line 1463
    move p1, v6

    .line 1458
    :cond_54
    add-int/lit8 v4, v4, 0x1

    goto :goto_38

    .end local v3           #end:I
    .end local v4           #i:I
    .end local v5           #spans:[Landroid/text/style/ReplacementSpan;
    .end local v6           #start:I
    :cond_57
    move v8, p1

    .line 1467
    goto :goto_3
.end method

.method private getTextRectByOffset(I)Landroid/graphics/RectF;
    .registers 13
    .parameter "offset"

    .prologue
    .line 406
    new-instance v0, Landroid/graphics/Path;

    invoke-direct {v0}, Landroid/graphics/Path;-><init>()V

    .line 407
    .local v0, path:Landroid/graphics/Path;
    add-int/lit8 v6, p1, 0x1

    invoke-virtual {p0, p1, v6, v0}, Landroid/text/Layout;->getSelectionPath(IILandroid/graphics/Path;)V

    .line 409
    new-instance v2, Landroid/graphics/RectF;

    invoke-direct {v2}, Landroid/graphics/RectF;-><init>()V

    .line 410
    .local v2, rect:Landroid/graphics/RectF;
    const/4 v6, 0x0

    invoke-virtual {v0, v2, v6}, Landroid/graphics/Path;->computeBounds(Landroid/graphics/RectF;Z)V

    .line 412
    new-instance v3, Landroid/graphics/Region;

    invoke-direct {v3}, Landroid/graphics/Region;-><init>()V

    .line 413
    .local v3, reg:Landroid/graphics/Region;
    new-instance v4, Landroid/graphics/Region;

    new-instance v6, Landroid/graphics/Rect;

    iget v7, v2, Landroid/graphics/RectF;->left:F

    float-to-int v7, v7

    iget v8, v2, Landroid/graphics/RectF;->top:F

    float-to-int v8, v8

    iget v9, v2, Landroid/graphics/RectF;->right:F

    float-to-int v9, v9

    iget v10, v2, Landroid/graphics/RectF;->bottom:F

    float-to-int v10, v10

    invoke-direct {v6, v7, v8, v9, v10}, Landroid/graphics/Rect;-><init>(IIII)V

    invoke-direct {v4, v6}, Landroid/graphics/Region;-><init>(Landroid/graphics/Rect;)V

    .line 414
    .local v4, regBound:Landroid/graphics/Region;
    invoke-virtual {v3, v0, v4}, Landroid/graphics/Region;->setPath(Landroid/graphics/Path;Landroid/graphics/Region;)Z

    .line 416
    invoke-virtual {v3}, Landroid/graphics/Region;->isComplex()Z

    move-result v6

    if-eqz v6, :cond_60

    .line 417
    if-lez p1, :cond_60

    const/4 v6, 0x1

    sub-int v6, p1, v6

    invoke-virtual {p0, v6}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v6

    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v7

    if-ne v6, v7, :cond_60

    .line 418
    new-instance v5, Landroid/graphics/RegionIterator;

    invoke-direct {v5, v3}, Landroid/graphics/RegionIterator;-><init>(Landroid/graphics/Region;)V

    .line 419
    .local v5, ri:Landroid/graphics/RegionIterator;
    new-instance v1, Landroid/graphics/Rect;

    invoke-direct {v1}, Landroid/graphics/Rect;-><init>()V

    .line 420
    .local v1, r:Landroid/graphics/Rect;
    invoke-virtual {v5, v1}, Landroid/graphics/RegionIterator;->next(Landroid/graphics/Rect;)Z

    move-result v6

    if-eqz v6, :cond_60

    .line 421
    iget v6, v1, Landroid/graphics/Rect;->left:I

    int-to-float v6, v6

    iput v6, v2, Landroid/graphics/RectF;->left:F

    .line 422
    iget v6, v1, Landroid/graphics/Rect;->bottom:I

    int-to-float v6, v6

    iput v6, v2, Landroid/graphics/RectF;->bottom:F

    .line 427
    .end local v1           #r:Landroid/graphics/Rect;
    .end local v5           #ri:Landroid/graphics/RegionIterator;
    :cond_60
    return-object v2
.end method

.method private static measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IIIILandroid/text/Layout$Directions;ZZZ[Ljava/lang/Object;)F
    .registers 31
    .parameter "paint"
    .parameter "workPaint"
    .parameter "text"
    .parameter "start"
    .parameter "offset"
    .parameter "end"
    .parameter "dir"
    .parameter "directions"
    .parameter "trailing"
    .parameter "alt"
    .parameter "hasTabs"
    .parameter "tabs"

    .prologue
    .line 1941
    const/4 v5, 0x0

    .line 1943
    .local v5, buf:[C
    if-eqz p10, :cond_15

    .line 1944
    sub-int v5, p5, p3

    invoke-static {v5}, Landroid/text/TextUtils;->obtain(I)[C

    .end local v5           #buf:[C
    move-result-object v5

    .line 1945
    .restart local v5       #buf:[C
    const/4 v6, 0x0

    move-object/from16 v0, p2

    move/from16 v1, p3

    move/from16 v2, p5

    move-object v3, v5

    move v4, v6

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V

    :cond_15
    move-object v12, v5

    .line 1948
    .end local v5           #buf:[C
    .local v12, buf:[C
    const/4 v5, 0x0

    .line 1950
    .local v5, h:F
    if-eqz p9, :cond_23

    .line 1951
    const/4 v6, -0x1

    move/from16 v0, p6

    move v1, v6

    if-ne v0, v1, :cond_23

    .line 1952
    if-nez p8, :cond_b7

    const/16 p8, 0x1

    .line 1955
    :cond_23
    :goto_23
    const/4 v6, 0x0

    .line 1956
    .local v6, here:I
    const/4 v7, 0x0

    .local v7, i:I
    move v14, v7

    .end local v7           #i:I
    .local v14, i:I
    :goto_26
    invoke-static/range {p7 .. p7}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v7

    array-length v7, v7

    if-ge v14, v7, :cond_1b8

    .line 1957
    if-eqz p9, :cond_33

    .line 1958
    if-nez p8, :cond_bb

    const/16 p8, 0x1

    .line 1960
    :cond_33
    :goto_33
    invoke-static/range {p7 .. p7}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v7

    aget-short v7, v7, v14

    add-int/2addr v7, v6

    .line 1961
    .local v7, there:I
    sub-int v8, p5, p3

    if-le v7, v8, :cond_1d1

    .line 1962
    sub-int v7, p5, p3

    move/from16 v18, v7

    .line 1964
    .end local v7           #there:I
    .local v18, there:I
    :goto_42
    move v7, v6

    .line 1965
    .local v7, segstart:I
    if-eqz p10, :cond_bf

    .local v6, j:I
    :goto_45
    move v15, v6

    .end local v6           #j:I
    .local v15, j:I
    move/from16 v16, v7

    .end local v7           #segstart:I
    .local v16, segstart:I
    move v13, v5

    .end local v5           #h:F
    .local v13, h:F
    :goto_49
    move v0, v15

    move/from16 v1, v18

    if-gt v0, v1, :cond_1af

    .line 1966
    const/4 v6, 0x0

    .line 1967
    .local v6, codept:I
    const/4 v5, 0x0

    .line 1969
    .local v5, bm:Landroid/graphics/Bitmap;
    if-eqz p10, :cond_59

    move v0, v15

    move/from16 v1, v18

    if-ge v0, v1, :cond_59

    .line 1970
    aget-char v6, v12, v15

    .line 1973
    :cond_59
    const v7, 0xd800

    if-lt v6, v7, :cond_1cd

    const v7, 0xdfff

    if-gt v6, v7, :cond_1cd

    add-int/lit8 v7, v15, 0x1

    move v0, v7

    move/from16 v1, v18

    if-ge v0, v1, :cond_1cd

    .line 1974
    invoke-static {v12, v15}, Ljava/lang/Character;->codePointAt([CI)I

    move-result v6

    .line 1976
    sget v7, Landroid/text/Layout;->MIN_EMOJI:I

    if-lt v6, v7, :cond_1cd

    sget v7, Landroid/text/Layout;->MAX_EMOJI:I

    if-gt v6, v7, :cond_1cd

    .line 1977
    sget-object v5, Landroid/text/Layout;->EMOJI_FACTORY:Landroid/emoji/EmojiFactory;

    .end local v5           #bm:Landroid/graphics/Bitmap;
    invoke-virtual {v5, v6}, Landroid/emoji/EmojiFactory;->getBitmapFromAndroidPua(I)Landroid/graphics/Bitmap;

    move-result-object v5

    .restart local v5       #bm:Landroid/graphics/Bitmap;
    move-object v11, v5

    .end local v5           #bm:Landroid/graphics/Bitmap;
    .local v11, bm:Landroid/graphics/Bitmap;
    move v5, v6

    .line 1981
    .end local v6           #codept:I
    .local v5, codept:I
    :goto_7e
    move v0, v15

    move/from16 v1, v18

    if-eq v0, v1, :cond_89

    const/16 v6, 0x9

    if-eq v5, v6, :cond_89

    if-eqz v11, :cond_1c8

    .line 1984
    :cond_89
    add-int v5, p3, v15

    move/from16 v0, p4

    move v1, v5

    if-lt v0, v1, :cond_99

    .end local v5           #codept:I
    if-eqz p8, :cond_e0

    add-int v5, p3, v15

    move/from16 v0, p4

    move v1, v5

    if-gt v0, v1, :cond_e0

    .line 1986
    :cond_99
    const/4 v5, 0x1

    move/from16 v0, p6

    move v1, v5

    if-ne v0, v1, :cond_c2

    and-int/lit8 v5, v14, 0x1

    if-nez v5, :cond_c2

    .line 1987
    add-int v8, p3, v16

    const/4 v10, 0x0

    move-object/from16 v5, p0

    move-object/from16 v6, p1

    move-object/from16 v7, p2

    move/from16 v9, p4

    invoke-static/range {v5 .. v10}, Landroid/text/Styled;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)F

    move-result p0

    .end local p0
    add-float p0, p0, v13

    .end local v13           #h:F
    .local p0, h:F
    move/from16 p1, p0

    .line 2063
    .end local v11           #bm:Landroid/graphics/Bitmap;
    .end local v15           #j:I
    .end local v16           #segstart:I
    .end local v18           #there:I
    .end local p0           #h:F
    .local p1, h:F
    :goto_b6
    return p1

    .line 1952
    .end local v14           #i:I
    .local v5, h:F
    .local p0, paint:Landroid/text/TextPaint;
    .local p1, workPaint:Landroid/text/TextPaint;
    :cond_b7
    const/16 p8, 0x0

    goto/16 :goto_23

    .line 1958
    .local v6, here:I
    .restart local v14       #i:I
    :cond_bb
    const/16 p8, 0x0

    goto/16 :goto_33

    .restart local v7       #segstart:I
    .restart local v18       #there:I
    :cond_bf
    move/from16 v6, v18

    .line 1965
    goto :goto_45

    .line 1993
    .end local v5           #h:F
    .end local v6           #here:I
    .end local v7           #segstart:I
    .restart local v11       #bm:Landroid/graphics/Bitmap;
    .restart local v13       #h:F
    .restart local v15       #j:I
    .restart local v16       #segstart:I
    :cond_c2
    const/4 v5, -0x1

    move/from16 v0, p6

    move v1, v5

    if-ne v0, v1, :cond_e0

    and-int/lit8 v5, v14, 0x1

    if-eqz v5, :cond_e0

    .line 1994
    add-int v8, p3, v16

    const/4 v10, 0x0

    move-object/from16 v5, p0

    move-object/from16 v6, p1

    move-object/from16 v7, p2

    move/from16 v9, p4

    invoke-static/range {v5 .. v10}, Landroid/text/Styled;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)F

    move-result p0

    .end local p0           #paint:Landroid/text/TextPaint;
    sub-float p0, v13, p0

    .end local v13           #h:F
    .local p0, h:F
    move/from16 p1, p0

    .line 1997
    .end local p0           #h:F
    .local p1, h:F
    goto :goto_b6

    .line 2001
    .restart local v13       #h:F
    .local p0, paint:Landroid/text/TextPaint;
    .local p1, workPaint:Landroid/text/TextPaint;
    :cond_e0
    add-int v8, p3, v16

    add-int v9, p3, v15

    const/4 v10, 0x0

    move-object/from16 v5, p0

    move-object/from16 v6, p1

    move-object/from16 v7, p2

    invoke-static/range {v5 .. v10}, Landroid/text/Styled;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)F

    move-result v17

    .line 2005
    .local v17, segw:F
    add-int v5, p3, v15

    move/from16 v0, p4

    move v1, v5

    if-lt v0, v1, :cond_ff

    if-eqz p8, :cond_137

    add-int v5, p3, v15

    move/from16 v0, p4

    move v1, v5

    if-gt v0, v1, :cond_137

    .line 2007
    :cond_ff
    const/4 v5, 0x1

    move/from16 v0, p6

    move v1, v5

    if-ne v0, v1, :cond_11b

    .line 2008
    add-int v8, p3, v16

    const/4 v10, 0x0

    move-object/from16 v5, p0

    move-object/from16 v6, p1

    move-object/from16 v7, p2

    move/from16 v9, p4

    invoke-static/range {v5 .. v10}, Landroid/text/Styled;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)F

    move-result p0

    .end local p0           #paint:Landroid/text/TextPaint;
    sub-float p0, v17, p0

    add-float p0, p0, v13

    .end local v13           #h:F
    .local p0, h:F
    move/from16 p1, p0

    .line 2012
    .end local p0           #h:F
    .local p1, h:F
    goto :goto_b6

    .line 2015
    .restart local v13       #h:F
    .local p0, paint:Landroid/text/TextPaint;
    .local p1, workPaint:Landroid/text/TextPaint;
    :cond_11b
    const/4 v5, -0x1

    move/from16 v0, p6

    move v1, v5

    if-ne v0, v1, :cond_137

    .line 2016
    add-int v8, p3, v16

    const/4 v10, 0x0

    move-object/from16 v5, p0

    move-object/from16 v6, p1

    move-object/from16 v7, p2

    move/from16 v9, p4

    invoke-static/range {v5 .. v10}, Landroid/text/Styled;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)F

    move-result p0

    .end local p0           #paint:Landroid/text/TextPaint;
    sub-float p0, v17, p0

    sub-float p0, v13, p0

    .end local v13           #h:F
    .local p0, h:F
    move/from16 p1, p0

    .line 2020
    .end local p0           #h:F
    .local p1, h:F
    goto :goto_b6

    .line 2024
    .restart local v13       #h:F
    .local p0, paint:Landroid/text/TextPaint;
    .local p1, workPaint:Landroid/text/TextPaint;
    :cond_137
    const/4 v5, -0x1

    move/from16 v0, p6

    move v1, v5

    if-ne v0, v1, :cond_157

    .line 2025
    sub-float v5, v13, v17

    .line 2029
    .end local v13           #h:F
    .restart local v5       #h:F
    :goto_13f
    move v0, v15

    move/from16 v1, v18

    if-eq v0, v1, :cond_1c6

    aget-char v6, v12, v15

    const/16 v7, 0x9

    if-ne v6, v7, :cond_1c6

    .line 2030
    add-int v6, p3, v15

    move/from16 v0, p4

    move v1, v6

    if-ne v0, v1, :cond_15a

    move/from16 p0, v5

    .end local v5           #h:F
    .local p0, h:F
    move/from16 p1, v5

    .line 2031
    .end local p0           #h:F
    .local p1, h:F
    goto/16 :goto_b6

    .line 2027
    .restart local v13       #h:F
    .local p0, paint:Landroid/text/TextPaint;
    .local p1, workPaint:Landroid/text/TextPaint;
    :cond_157
    add-float v5, v13, v17

    .end local v13           #h:F
    .restart local v5       #h:F
    goto :goto_13f

    .line 2033
    :cond_15a
    move/from16 v0, p6

    int-to-float v0, v0

    move v6, v0

    move/from16 v0, p6

    int-to-float v0, v0

    move v7, v0

    mul-float/2addr v5, v7

    move-object/from16 v0, p2

    move/from16 v1, p3

    move/from16 v2, p5

    move v3, v5

    move-object/from16 v4, p11

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/Layout;->nextTab(Ljava/lang/CharSequence;IIF[Ljava/lang/Object;)F

    .end local v5           #h:F
    move-result v5

    mul-float/2addr v5, v6

    .restart local v5       #h:F
    move v13, v5

    .line 2036
    .end local v5           #h:F
    .restart local v13       #h:F
    :goto_172
    if-eqz v11, :cond_1c3

    .line 2037
    move-object/from16 v0, p1

    move-object/from16 v1, p0

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->set(Landroid/text/TextPaint;)V

    .line 2038
    add-int/lit8 v9, v15, 0x2

    const/4 v10, 0x0

    move-object/from16 v5, p0

    move-object/from16 v6, p1

    move-object/from16 v7, p2

    move v8, v15

    invoke-static/range {v5 .. v10}, Landroid/text/Styled;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)F

    .line 2041
    invoke-virtual {v11}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v5

    int-to-float v5, v5

    invoke-virtual/range {p1 .. p1}, Landroid/text/TextPaint;->ascent()F

    move-result v6

    neg-float v6, v6

    mul-float/2addr v5, v6

    invoke-virtual {v11}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v6

    int-to-float v6, v6

    div-float/2addr v5, v6

    .line 2044
    .local v5, wid:F
    const/4 v6, -0x1

    move/from16 v0, p6

    move v1, v6

    if-ne v0, v1, :cond_1ad

    .line 2045
    sub-float v5, v13, v5

    .line 2050
    .end local v13           #h:F
    .local v5, h:F
    :goto_1a1
    add-int/lit8 v6, v15, 0x1

    .line 2053
    .end local v15           #j:I
    .local v6, j:I
    :goto_1a3
    add-int/lit8 v7, v6, 0x1

    .line 1965
    .end local v16           #segstart:I
    .end local v17           #segw:F
    .restart local v7       #segstart:I
    :goto_1a5
    add-int/lit8 v6, v6, 0x1

    move v15, v6

    .end local v6           #j:I
    .restart local v15       #j:I
    move/from16 v16, v7

    .end local v7           #segstart:I
    .restart local v16       #segstart:I
    move v13, v5

    .end local v5           #h:F
    .restart local v13       #h:F
    goto/16 :goto_49

    .line 2047
    .local v5, wid:F
    .restart local v17       #segw:F
    :cond_1ad
    add-float/2addr v5, v13

    .end local v13           #h:F
    .local v5, h:F
    goto :goto_1a1

    .line 2057
    .end local v5           #h:F
    .end local v11           #bm:Landroid/graphics/Bitmap;
    .end local v17           #segw:F
    .restart local v13       #h:F
    :cond_1af
    move/from16 v5, v18

    .line 1956
    .local v5, here:I
    add-int/lit8 v6, v14, 0x1

    .end local v14           #i:I
    .local v6, i:I
    move v14, v6

    .end local v6           #i:I
    .restart local v14       #i:I
    move v6, v5

    .end local v5           #here:I
    .local v6, here:I
    move v5, v13

    .end local v13           #h:F
    .local v5, h:F
    goto/16 :goto_26

    .line 2060
    .end local v15           #j:I
    .end local v16           #segstart:I
    .end local v18           #there:I
    :cond_1b8
    if-eqz p10, :cond_1bd

    .line 2061
    invoke-static {v12}, Landroid/text/TextUtils;->recycle([C)V

    :cond_1bd
    move/from16 p0, v5

    .end local v5           #h:F
    .local p0, h:F
    move/from16 p1, v5

    .line 2063
    .end local p0           #h:F
    .local p1, h:F
    goto/16 :goto_b6

    .end local v6           #here:I
    .restart local v11       #bm:Landroid/graphics/Bitmap;
    .restart local v13       #h:F
    .restart local v15       #j:I
    .restart local v16       #segstart:I
    .restart local v17       #segw:F
    .restart local v18       #there:I
    .local p0, paint:Landroid/text/TextPaint;
    .local p1, workPaint:Landroid/text/TextPaint;
    :cond_1c3
    move v6, v15

    .end local v15           #j:I
    .local v6, j:I
    move v5, v13

    .end local v13           #h:F
    .restart local v5       #h:F
    goto :goto_1a3

    .end local v6           #j:I
    .restart local v15       #j:I
    :cond_1c6
    move v13, v5

    .end local v5           #h:F
    .restart local v13       #h:F
    goto :goto_172

    .end local v17           #segw:F
    .local v5, codept:I
    :cond_1c8
    move v6, v15

    .end local v15           #j:I
    .restart local v6       #j:I
    move/from16 v7, v16

    .end local v16           #segstart:I
    .restart local v7       #segstart:I
    move v5, v13

    .end local v13           #h:F
    .local v5, h:F
    goto :goto_1a5

    .end local v7           #segstart:I
    .end local v11           #bm:Landroid/graphics/Bitmap;
    .local v5, bm:Landroid/graphics/Bitmap;
    .local v6, codept:I
    .restart local v13       #h:F
    .restart local v15       #j:I
    .restart local v16       #segstart:I
    :cond_1cd
    move-object v11, v5

    .end local v5           #bm:Landroid/graphics/Bitmap;
    .restart local v11       #bm:Landroid/graphics/Bitmap;
    move v5, v6

    .end local v6           #codept:I
    .local v5, codept:I
    goto/16 :goto_7e

    .end local v11           #bm:Landroid/graphics/Bitmap;
    .end local v13           #h:F
    .end local v15           #j:I
    .end local v16           #segstart:I
    .end local v18           #there:I
    .local v5, h:F
    .local v6, here:I
    .local v7, there:I
    :cond_1d1
    move/from16 v18, v7

    .end local v7           #there:I
    .restart local v18       #there:I
    goto/16 :goto_42
.end method

.method static measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;Z[Ljava/lang/Object;)F
    .registers 28
    .parameter "paint"
    .parameter "workPaint"
    .parameter "text"
    .parameter "start"
    .parameter "end"
    .parameter "fm"
    .parameter "hasTabs"
    .parameter "tabs"

    .prologue
    .line 2087
    const/4 v5, 0x0

    .line 2089
    .local v5, buf:[C
    if-eqz p6, :cond_15

    .line 2090
    sub-int v5, p4, p3

    invoke-static {v5}, Landroid/text/TextUtils;->obtain(I)[C

    .end local v5           #buf:[C
    move-result-object v5

    .line 2091
    .restart local v5       #buf:[C
    const/4 v6, 0x0

    move-object/from16 v0, p2

    move/from16 v1, p3

    move/from16 v2, p4

    move-object v3, v5

    move v4, v6

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V

    :cond_15
    move-object v14, v5

    .line 2094
    .end local v5           #buf:[C
    .local v14, buf:[C
    sub-int v16, p4, p3

    .line 2096
    .local v16, len:I
    const/4 v8, 0x0

    .line 2097
    .local v8, lastPos:I
    const/4 v11, 0x0

    .line 2098
    .local v11, width:F
    const/4 v5, 0x0

    .local v5, ascent:I
    const/4 v7, 0x0

    .local v7, descent:I
    const/4 v10, 0x0

    .local v10, top:I
    const/4 v6, 0x0

    .line 2100
    .local v6, bottom:I
    if-eqz p5, :cond_2c

    .line 2101
    const/4 v9, 0x0

    move v0, v9

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 2102
    const/4 v9, 0x0

    move v0, v9

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 2105
    :cond_2c
    if-eqz p6, :cond_121

    const/4 v9, 0x0

    .local v9, pos:I
    :goto_2f
    move/from16 v17, v9

    .end local v9           #pos:I
    .local v17, pos:I
    move v13, v6

    .end local v6           #bottom:I
    .local v13, bottom:I
    move/from16 v18, v10

    .end local v10           #top:I
    .local v18, top:I
    move v15, v7

    .end local v7           #descent:I
    .local v15, descent:I
    move/from16 v19, v11

    .end local v11           #width:F
    .local v19, width:F
    move v11, v5

    .end local v5           #ascent:I
    .local v11, ascent:I
    move v7, v8

    .end local v8           #lastPos:I
    .local v7, lastPos:I
    :goto_39
    move/from16 v0, v17

    move/from16 v1, v16

    if-gt v0, v1, :cond_177

    .line 2106
    const/4 v6, 0x0

    .line 2107
    .local v6, codept:I
    const/4 v5, 0x0

    .line 2109
    .local v5, bm:Landroid/graphics/Bitmap;
    if-eqz p6, :cond_4b

    move/from16 v0, v17

    move/from16 v1, v16

    if-ge v0, v1, :cond_4b

    .line 2110
    aget-char v6, v14, v17

    .line 2113
    :cond_4b
    const v8, 0xd800

    if-lt v6, v8, :cond_1bb

    const v8, 0xdfff

    if-gt v6, v8, :cond_1bb

    move/from16 v0, v17

    move/from16 v1, v16

    if-ge v0, v1, :cond_1bb

    .line 2114
    move-object v0, v14

    move/from16 v1, v17

    invoke-static {v0, v1}, Ljava/lang/Character;->codePointAt([CI)I

    move-result v6

    .line 2116
    sget v8, Landroid/text/Layout;->MIN_EMOJI:I

    if-lt v6, v8, :cond_1bb

    sget v8, Landroid/text/Layout;->MAX_EMOJI:I

    if-gt v6, v8, :cond_1bb

    .line 2117
    sget-object v5, Landroid/text/Layout;->EMOJI_FACTORY:Landroid/emoji/EmojiFactory;

    .end local v5           #bm:Landroid/graphics/Bitmap;
    invoke-virtual {v5, v6}, Landroid/emoji/EmojiFactory;->getBitmapFromAndroidPua(I)Landroid/graphics/Bitmap;

    move-result-object v5

    .restart local v5       #bm:Landroid/graphics/Bitmap;
    move-object v12, v5

    .end local v5           #bm:Landroid/graphics/Bitmap;
    .local v12, bm:Landroid/graphics/Bitmap;
    move v5, v6

    .line 2121
    .end local v6           #codept:I
    .local v5, codept:I
    :goto_72
    move/from16 v0, v17

    move/from16 v1, v16

    if-eq v0, v1, :cond_7e

    const/16 v6, 0x9

    if-eq v5, v6, :cond_7e

    if-eqz v12, :cond_1af

    .line 2122
    :cond_7e
    const/4 v5, 0x0

    move v0, v5

    move-object/from16 v1, p1

    iput v0, v1, Landroid/text/TextPaint;->baselineShift:I

    .line 2124
    .end local v5           #codept:I
    add-int v8, p3, v7

    add-int v9, p3, v17

    move-object/from16 v5, p0

    move-object/from16 v6, p1

    move-object/from16 v7, p2

    move-object/from16 v10, p5

    invoke-static/range {v5 .. v10}, Landroid/text/Styled;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)F

    .end local v7           #lastPos:I
    move-result v5

    add-float v19, v19, v5

    .line 2128
    if-eqz p5, :cond_bf

    .line 2129
    move-object/from16 v0, p1

    iget v0, v0, Landroid/text/TextPaint;->baselineShift:I

    move v5, v0

    if-gez v5, :cond_125

    .line 2130
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move v5, v0

    move-object/from16 v0, p1

    iget v0, v0, Landroid/text/TextPaint;->baselineShift:I

    move v6, v0

    add-int/2addr v5, v6

    move v0, v5

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 2131
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move v5, v0

    move-object/from16 v0, p1

    iget v0, v0, Landroid/text/TextPaint;->baselineShift:I

    move v6, v0

    add-int/2addr v5, v6

    move v0, v5

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->top:I

    .line 2138
    :cond_bf
    :goto_bf
    move/from16 v0, v17

    move/from16 v1, v16

    if-eq v0, v1, :cond_1a9

    .line 2139
    if-nez v12, :cond_147

    .line 2141
    move-object/from16 v0, p2

    move/from16 v1, p3

    move/from16 v2, p4

    move/from16 v3, v19

    move-object/from16 v4, p7

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/Layout;->nextTab(Ljava/lang/CharSequence;IIF[Ljava/lang/Object;)F

    move-result v5

    .end local v19           #width:F
    .local v5, width:F
    move/from16 v9, v17

    .end local v17           #pos:I
    .restart local v9       #pos:I
    move v12, v5

    .line 2164
    .end local v5           #width:F
    .local v12, width:F
    :goto_d8
    if-eqz p5, :cond_1a2

    .line 2165
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move v5, v0

    if-ge v5, v11, :cond_19f

    .line 2166
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move v5, v0

    .line 2168
    .end local v11           #ascent:I
    .local v5, ascent:I
    :goto_e6
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move v6, v0

    if-le v6, v15, :cond_19c

    .line 2169
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move v6, v0

    .end local v15           #descent:I
    .local v6, descent:I
    move v7, v6

    .line 2172
    .end local v6           #descent:I
    .local v7, descent:I
    :goto_f3
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move v6, v0

    move v0, v6

    move/from16 v1, v18

    if-ge v0, v1, :cond_198

    .line 2173
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move v6, v0

    .end local v18           #top:I
    .local v6, top:I
    move v8, v6

    .line 2175
    .end local v6           #top:I
    .local v8, top:I
    :goto_103
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move v6, v0

    if-le v6, v13, :cond_194

    .line 2176
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move v6, v0

    .end local v13           #bottom:I
    .local v6, bottom:I
    move v10, v8

    .line 2183
    .end local v8           #top:I
    .restart local v10       #top:I
    :goto_110
    add-int/lit8 v8, v9, 0x1

    .local v8, lastPos:I
    move v11, v12

    .line 2105
    .end local v12           #width:F
    .local v11, width:F
    :goto_113
    add-int/lit8 v9, v9, 0x1

    move/from16 v17, v9

    .end local v9           #pos:I
    .restart local v17       #pos:I
    move v13, v6

    .end local v6           #bottom:I
    .restart local v13       #bottom:I
    move/from16 v18, v10

    .end local v10           #top:I
    .restart local v18       #top:I
    move v15, v7

    .end local v7           #descent:I
    .restart local v15       #descent:I
    move/from16 v19, v11

    .end local v11           #width:F
    .restart local v19       #width:F
    move v11, v5

    .end local v5           #ascent:I
    .local v11, ascent:I
    move v7, v8

    .end local v8           #lastPos:I
    .local v7, lastPos:I
    goto/16 :goto_39

    .end local v13           #bottom:I
    .end local v15           #descent:I
    .end local v17           #pos:I
    .end local v18           #top:I
    .end local v19           #width:F
    .restart local v5       #ascent:I
    .restart local v6       #bottom:I
    .local v7, descent:I
    .restart local v8       #lastPos:I
    .restart local v10       #top:I
    .local v11, width:F
    :cond_121
    move/from16 v9, v16

    goto/16 :goto_2f

    .line 2133
    .end local v5           #ascent:I
    .end local v6           #bottom:I
    .end local v7           #descent:I
    .end local v8           #lastPos:I
    .end local v10           #top:I
    .local v11, ascent:I
    .local v12, bm:Landroid/graphics/Bitmap;
    .restart local v13       #bottom:I
    .restart local v15       #descent:I
    .restart local v17       #pos:I
    .restart local v18       #top:I
    .restart local v19       #width:F
    :cond_125
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move v5, v0

    move-object/from16 v0, p1

    iget v0, v0, Landroid/text/TextPaint;->baselineShift:I

    move v6, v0

    add-int/2addr v5, v6

    move v0, v5

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 2134
    move-object/from16 v0, p5

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move v5, v0

    move-object/from16 v0, p1

    iget v0, v0, Landroid/text/TextPaint;->baselineShift:I

    move v6, v0

    add-int/2addr v5, v6

    move v0, v5

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    goto/16 :goto_bf

    .line 2151
    :cond_147
    move-object/from16 v0, p1

    move-object/from16 v1, p0

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->set(Landroid/text/TextPaint;)V

    .line 2152
    add-int v8, p3, v17

    add-int v5, p3, v17

    add-int/lit8 v9, v5, 0x1

    const/4 v10, 0x0

    move-object/from16 v5, p0

    move-object/from16 v6, p1

    move-object/from16 v7, p2

    invoke-static/range {v5 .. v10}, Landroid/text/Styled;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)F

    .line 2155
    invoke-virtual {v12}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v5

    int-to-float v5, v5

    invoke-virtual/range {p1 .. p1}, Landroid/text/TextPaint;->ascent()F

    move-result v6

    neg-float v6, v6

    mul-float/2addr v5, v6

    invoke-virtual {v12}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v6

    int-to-float v6, v6

    div-float/2addr v5, v6

    add-float v6, v19, v5

    .line 2160
    .end local v19           #width:F
    .local v6, width:F
    add-int/lit8 v5, v17, 0x1

    .end local v17           #pos:I
    .local v5, pos:I
    move v9, v5

    .end local v5           #pos:I
    .restart local v9       #pos:I
    move v12, v6

    .end local v6           #width:F
    .local v12, width:F
    goto/16 :goto_d8

    .line 2187
    .end local v9           #pos:I
    .end local v12           #width:F
    .local v7, lastPos:I
    .restart local v17       #pos:I
    .restart local v19       #width:F
    :cond_177
    if-eqz p5, :cond_18e

    .line 2188
    move v0, v11

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 2189
    move v0, v15

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 2190
    move/from16 v0, v18

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->top:I

    .line 2191
    move v0, v13

    move-object/from16 v1, p5

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    .line 2194
    :cond_18e
    if-eqz p6, :cond_193

    .line 2195
    invoke-static {v14}, Landroid/text/TextUtils;->recycle([C)V

    .line 2197
    :cond_193
    return v19

    .end local v11           #ascent:I
    .end local v15           #descent:I
    .end local v17           #pos:I
    .end local v18           #top:I
    .end local v19           #width:F
    .local v5, ascent:I
    .local v7, descent:I
    .local v8, top:I
    .restart local v9       #pos:I
    .restart local v12       #width:F
    :cond_194
    move v6, v13

    .end local v13           #bottom:I
    .local v6, bottom:I
    move v10, v8

    .end local v8           #top:I
    .restart local v10       #top:I
    goto/16 :goto_110

    .end local v6           #bottom:I
    .end local v10           #top:I
    .restart local v13       #bottom:I
    .restart local v18       #top:I
    :cond_198
    move/from16 v8, v18

    .end local v18           #top:I
    .restart local v8       #top:I
    goto/16 :goto_103

    .end local v7           #descent:I
    .end local v8           #top:I
    .restart local v15       #descent:I
    .restart local v18       #top:I
    :cond_19c
    move v7, v15

    .end local v15           #descent:I
    .restart local v7       #descent:I
    goto/16 :goto_f3

    .end local v5           #ascent:I
    .end local v7           #descent:I
    .restart local v11       #ascent:I
    .restart local v15       #descent:I
    :cond_19f
    move v5, v11

    .end local v11           #ascent:I
    .restart local v5       #ascent:I
    goto/16 :goto_e6

    .end local v5           #ascent:I
    .restart local v11       #ascent:I
    :cond_1a2
    move v6, v13

    .end local v13           #bottom:I
    .restart local v6       #bottom:I
    move/from16 v10, v18

    .end local v18           #top:I
    .restart local v10       #top:I
    move v7, v15

    .end local v15           #descent:I
    .restart local v7       #descent:I
    move v5, v11

    .end local v11           #ascent:I
    .restart local v5       #ascent:I
    goto/16 :goto_110

    .end local v5           #ascent:I
    .end local v6           #bottom:I
    .end local v7           #descent:I
    .end local v9           #pos:I
    .end local v10           #top:I
    .restart local v11       #ascent:I
    .local v12, bm:Landroid/graphics/Bitmap;
    .restart local v13       #bottom:I
    .restart local v15       #descent:I
    .restart local v17       #pos:I
    .restart local v18       #top:I
    .restart local v19       #width:F
    :cond_1a9
    move/from16 v9, v17

    .end local v17           #pos:I
    .restart local v9       #pos:I
    move/from16 v12, v19

    .end local v19           #width:F
    .local v12, width:F
    goto/16 :goto_d8

    .end local v9           #pos:I
    .local v5, codept:I
    .local v7, lastPos:I
    .local v12, bm:Landroid/graphics/Bitmap;
    .restart local v17       #pos:I
    .restart local v19       #width:F
    :cond_1af
    move/from16 v9, v17

    .end local v17           #pos:I
    .restart local v9       #pos:I
    move v6, v13

    .end local v13           #bottom:I
    .restart local v6       #bottom:I
    move/from16 v10, v18

    .end local v18           #top:I
    .restart local v10       #top:I
    move v5, v11

    .end local v11           #ascent:I
    .local v5, ascent:I
    move v8, v7

    .end local v7           #lastPos:I
    .local v8, lastPos:I
    move/from16 v11, v19

    .end local v19           #width:F
    .local v11, width:F
    move v7, v15

    .end local v15           #descent:I
    .local v7, descent:I
    goto/16 :goto_113

    .end local v8           #lastPos:I
    .end local v9           #pos:I
    .end local v10           #top:I
    .end local v12           #bm:Landroid/graphics/Bitmap;
    .local v5, bm:Landroid/graphics/Bitmap;
    .local v6, codept:I
    .local v7, lastPos:I
    .local v11, ascent:I
    .restart local v13       #bottom:I
    .restart local v15       #descent:I
    .restart local v17       #pos:I
    .restart local v18       #top:I
    .restart local v19       #width:F
    :cond_1bb
    move-object v12, v5

    .end local v5           #bm:Landroid/graphics/Bitmap;
    .restart local v12       #bm:Landroid/graphics/Bitmap;
    move v5, v6

    .end local v6           #codept:I
    .local v5, codept:I
    goto/16 :goto_72
.end method

.method static nextTab(Ljava/lang/CharSequence;IIF[Ljava/lang/Object;)F
    .registers 11
    .parameter "text"
    .parameter "start"
    .parameter "end"
    .parameter "h"
    .parameter "tabs"

    .prologue
    const/high16 v5, 0x41a0

    .line 2214
    const v2, 0x7f7fffff

    .line 2215
    .local v2, nh:F
    const/4 v0, 0x0

    .line 2217
    .local v0, alltabs:Z
    instance-of v4, p0, Landroid/text/Spanned;

    if-eqz v4, :cond_41

    .line 2218
    if-nez p4, :cond_15

    .line 2219
    check-cast p0, Landroid/text/Spanned;

    .end local p0
    const-class v4, Landroid/text/style/TabStopSpan;

    invoke-interface {p0, p1, p2, v4}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object p4

    .line 2220
    const/4 v0, 0x1

    .line 2223
    :cond_15
    const/4 v1, 0x0

    .local v1, i:I
    :goto_16
    array-length v4, p4

    if-ge v1, v4, :cond_38

    .line 2224
    if-nez v0, :cond_24

    .line 2225
    aget-object v4, p4, v1

    instance-of v4, v4, Landroid/text/style/TabStopSpan;

    if-nez v4, :cond_24

    .line 2223
    :cond_21
    :goto_21
    add-int/lit8 v1, v1, 0x1

    goto :goto_16

    .line 2229
    :cond_24
    aget-object p0, p4, v1

    check-cast p0, Landroid/text/style/TabStopSpan;

    invoke-interface {p0}, Landroid/text/style/TabStopSpan;->getTabStop()I

    move-result v3

    .line 2231
    .local v3, where:I
    int-to-float v4, v3

    cmpg-float v4, v4, v2

    if-gez v4, :cond_21

    int-to-float v4, v3

    cmpl-float v4, v4, p3

    if-lez v4, :cond_21

    .line 2232
    int-to-float v2, v3

    goto :goto_21

    .line 2235
    .end local v3           #where:I
    :cond_38
    const v4, 0x7f7fffff

    cmpl-float v4, v2, v4

    if-eqz v4, :cond_41

    move v4, v2

    .line 2239
    .end local v1           #i:I
    :goto_40
    return v4

    :cond_41
    add-float v4, p3, v5

    div-float/2addr v4, v5

    float-to-int v4, v4

    mul-int/lit8 v4, v4, 0x14

    int-to-float v4, v4

    goto :goto_40
.end method


# virtual methods
.method public draw(Landroid/graphics/Canvas;)V
    .registers 4
    .parameter "c"

    .prologue
    const/4 v1, 0x0

    .line 158
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v1, v1, v0}, Landroid/text/Layout;->draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V

    .line 159
    return-void
.end method

.method public draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
    .registers 87
    .parameter "c"
    .parameter "highlight"
    .parameter "highlightPaint"
    .parameter "cursorOffsetVertical"

    .prologue
    .line 175
    sget-object v5, Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;

    monitor-enter v5

    .line 176
    :try_start_3
    sget-object v6, Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;

    move-object/from16 v0, p1

    move-object v1, v6

    invoke-virtual {v0, v1}, Landroid/graphics/Canvas;->getClipBounds(Landroid/graphics/Rect;)Z

    move-result v6

    if-nez v6, :cond_10

    .line 177
    monitor-exit v5

    .line 401
    .end local p2
    :cond_f
    return-void

    .line 180
    .restart local p2
    :cond_10
    sget-object v6, Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;

    move-object v0, v6

    iget v0, v0, Landroid/graphics/Rect;->top:I

    move/from16 v65, v0

    .line 181
    .local v65, dtop:I
    sget-object v6, Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;

    move-object v0, v6

    iget v0, v0, Landroid/graphics/Rect;->bottom:I

    move/from16 v64, v0

    .line 182
    .local v64, dbottom:I
    monitor-exit v5
    :try_end_1f
    .catchall {:try_start_3 .. :try_end_1f} :catchall_e3

    .line 185
    const/16 v79, 0x0

    .line 186
    .local v79, top:I
    invoke-virtual/range {p0 .. p0}, Landroid/text/Layout;->getLineCount()I

    move-result v5

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v62

    .line 188
    .local v62, bottom:I
    move/from16 v0, v65

    move/from16 v1, v79

    if-le v0, v1, :cond_34

    .line 189
    move/from16 v79, v65

    .line 191
    :cond_34
    move/from16 v0, v64

    move/from16 v1, v62

    if-ge v0, v1, :cond_3c

    .line 192
    move/from16 v62, v64

    .line 195
    :cond_3c
    move-object/from16 v0, p0

    move/from16 v1, v79

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineForVertical(I)I

    move-result v66

    .line 196
    .local v66, first:I
    move-object/from16 v0, p0

    move/from16 v1, v62

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineForVertical(I)I

    move-result v69

    .line 198
    .local v69, last:I
    move-object/from16 v0, p0

    move/from16 v1, v66

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v73

    .line 199
    .local v73, previousLineBottom:I
    move-object/from16 v0, p0

    move/from16 v1, v66

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v74

    .line 201
    .local v74, previousLineEnd:I
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;

    move-object v6, v0

    .line 202
    .local v6, paint:Landroid/text/TextPaint;
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v12, v0

    .line 203
    .local v12, buf:Ljava/lang/CharSequence;
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/Layout;->mWidth:I

    move v8, v0

    .line 204
    .local v8, width:I
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/text/Layout;->mSpannedText:Z

    move/from16 v77, v0

    .line 206
    .local v77, spannedText:Z
    sget-object v46, Landroid/text/Layout;->NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;

    .line 207
    .local v46, spans:[Landroid/text/style/ParagraphStyle;
    const/16 v76, 0x0

    .line 208
    .local v76, spanend:I
    const/16 v78, 0x0

    .line 213
    .local v78, textLength:I
    if-eqz v77, :cond_fd

    .line 214
    invoke-interface {v12}, Ljava/lang/CharSequence;->length()I

    move-result v78

    .line 215
    move/from16 v15, v66

    .local v15, i:I
    :goto_7f
    move v0, v15

    move/from16 v1, v69

    if-gt v0, v1, :cond_e9

    .line 216
    move/from16 v13, v74

    .line 217
    .local v13, start:I
    add-int/lit8 v5, v15, 0x1

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v14

    .line 218
    .local v14, end:I
    move/from16 v74, v14

    .line 220
    move/from16 v9, v73

    .line 221
    .local v9, ltop:I
    add-int/lit8 v5, v15, 0x1

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v11

    .line 222
    .local v11, lbottom:I
    move/from16 v73, v11

    .line 223
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineDescent(I)I

    move-result v5

    sub-int v10, v11, v5

    .line 225
    .local v10, lbaseline:I
    move v0, v13

    move/from16 v1, v76

    if-lt v0, v1, :cond_cb

    .line 226
    move-object v0, v12

    check-cast v0, Landroid/text/Spanned;

    move-object/from16 v75, v0

    .line 227
    .local v75, sp:Landroid/text/Spanned;
    const-class v5, Landroid/text/style/LineBackgroundSpan;

    move-object/from16 v0, v75

    move v1, v13

    move/from16 v2, v78

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->nextSpanTransition(IILjava/lang/Class;)I

    move-result v76

    .line 229
    const-class v5, Landroid/text/style/LineBackgroundSpan;

    move-object/from16 v0, v75

    move v1, v13

    move/from16 v2, v76

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v46

    .end local v46           #spans:[Landroid/text/style/ParagraphStyle;
    check-cast v46, [Landroid/text/style/ParagraphStyle;

    .line 233
    .end local v75           #sp:Landroid/text/Spanned;
    .restart local v46       #spans:[Landroid/text/style/ParagraphStyle;
    :cond_cb
    const/16 v72, 0x0

    .local v72, n:I
    :goto_cd
    move-object/from16 v0, v46

    array-length v0, v0

    move v5, v0

    move/from16 v0, v72

    move v1, v5

    if-ge v0, v1, :cond_e6

    .line 234
    aget-object v4, v46, v72

    check-cast v4, Landroid/text/style/LineBackgroundSpan;

    .line 236
    .local v4, back:Landroid/text/style/LineBackgroundSpan;
    const/4 v7, 0x0

    move-object/from16 v5, p1

    invoke-interface/range {v4 .. v15}, Landroid/text/style/LineBackgroundSpan;->drawBackground(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;III)V

    .line 233
    add-int/lit8 v72, v72, 0x1

    goto :goto_cd

    .line 182
    .end local v4           #back:Landroid/text/style/LineBackgroundSpan;
    .end local v6           #paint:Landroid/text/TextPaint;
    .end local v8           #width:I
    .end local v9           #ltop:I
    .end local v10           #lbaseline:I
    .end local v11           #lbottom:I
    .end local v12           #buf:Ljava/lang/CharSequence;
    .end local v13           #start:I
    .end local v14           #end:I
    .end local v15           #i:I
    .end local v46           #spans:[Landroid/text/style/ParagraphStyle;
    .end local v62           #bottom:I
    .end local v64           #dbottom:I
    .end local v65           #dtop:I
    .end local v66           #first:I
    .end local v69           #last:I
    .end local v72           #n:I
    .end local v73           #previousLineBottom:I
    .end local v74           #previousLineEnd:I
    .end local v76           #spanend:I
    .end local v77           #spannedText:Z
    .end local v78           #textLength:I
    .end local v79           #top:I
    :catchall_e3
    move-exception v6

    :try_start_e4
    monitor-exit v5
    :try_end_e5
    .catchall {:try_start_e4 .. :try_end_e5} :catchall_e3

    throw v6

    .line 215
    .restart local v6       #paint:Landroid/text/TextPaint;
    .restart local v8       #width:I
    .restart local v9       #ltop:I
    .restart local v10       #lbaseline:I
    .restart local v11       #lbottom:I
    .restart local v12       #buf:Ljava/lang/CharSequence;
    .restart local v13       #start:I
    .restart local v14       #end:I
    .restart local v15       #i:I
    .restart local v46       #spans:[Landroid/text/style/ParagraphStyle;
    .restart local v62       #bottom:I
    .restart local v64       #dbottom:I
    .restart local v65       #dtop:I
    .restart local v66       #first:I
    .restart local v69       #last:I
    .restart local v72       #n:I
    .restart local v73       #previousLineBottom:I
    .restart local v74       #previousLineEnd:I
    .restart local v76       #spanend:I
    .restart local v77       #spannedText:Z
    .restart local v78       #textLength:I
    .restart local v79       #top:I
    :cond_e6
    add-int/lit8 v15, v15, 0x1

    goto :goto_7f

    .line 243
    .end local v9           #ltop:I
    .end local v10           #lbaseline:I
    .end local v11           #lbottom:I
    .end local v13           #start:I
    .end local v14           #end:I
    .end local v72           #n:I
    :cond_e9
    const/16 v76, 0x0

    .line 244
    move-object/from16 v0, p0

    move/from16 v1, v66

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v73

    .line 245
    move-object/from16 v0, p0

    move/from16 v1, v66

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v74

    .line 246
    sget-object v46, Landroid/text/Layout;->NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;

    .line 251
    .end local v15           #i:I
    :cond_fd
    if-eqz p2, :cond_11f

    .line 252
    if-eqz p4, :cond_10d

    .line 253
    const/4 v5, 0x0

    move/from16 v0, p4

    int-to-float v0, v0

    move v7, v0

    move-object/from16 v0, p1

    move v1, v5

    move v2, v7

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Canvas;->translate(FF)V

    .line 256
    :cond_10d
    invoke-virtual/range {p1 .. p3}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V

    .line 258
    if-eqz p4, :cond_11f

    .line 259
    const/4 v5, 0x0

    move/from16 v0, p4

    neg-int v0, v0

    move v7, v0

    int-to-float v7, v7

    move-object/from16 v0, p1

    move v1, v5

    move v2, v7

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Canvas;->translate(FF)V

    .line 263
    :cond_11f
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;

    move-object/from16 v61, v0

    .line 268
    .local v61, align:Landroid/text/Layout$Alignment;
    move/from16 v15, v66

    .end local p2
    .restart local v15       #i:I
    :goto_127
    move v0, v15

    move/from16 v1, v69

    if-gt v0, v1, :cond_f

    .line 269
    move/from16 v13, v74

    .line 271
    .restart local v13       #start:I
    add-int/lit8 v5, v15, 0x1

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v74

    .line 272
    move-object/from16 v0, p0

    move v1, v15

    move v2, v13

    move/from16 v3, v74

    invoke-direct {v0, v1, v2, v3}, Landroid/text/Layout;->getLineVisibleEnd(III)I

    move-result v14

    .line 274
    .restart local v14       #end:I
    move/from16 v9, v73

    .line 275
    .restart local v9       #ltop:I
    add-int/lit8 v5, v15, 0x1

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v11

    .line 276
    .restart local v11       #lbottom:I
    move/from16 v73, v11

    .line 277
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineDescent(I)I

    move-result v5

    sub-int v10, v11, v5

    .line 279
    .restart local v10       #lbaseline:I
    const/16 v27, 0x0

    .line 280
    .local v27, isFirstParaLine:Z
    if-eqz v77, :cond_1ab

    .line 281
    if-eqz v13, :cond_168

    const/4 v5, 0x1

    sub-int v5, v13, v5

    invoke-interface {v12, v5}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v5

    const/16 v7, 0xa

    if-ne v5, v7, :cond_16a

    .line 282
    :cond_168
    const/16 v27, 0x1

    .line 286
    :cond_16a
    move v0, v13

    move/from16 v1, v76

    if-lt v0, v1, :cond_1ab

    .line 287
    move-object v0, v12

    check-cast v0, Landroid/text/Spanned;

    move-object/from16 v75, v0

    .line 288
    .restart local v75       #sp:Landroid/text/Spanned;
    const-class v5, Landroid/text/style/ParagraphStyle;

    move-object/from16 v0, v75

    move v1, v13

    move/from16 v2, v78

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->nextSpanTransition(IILjava/lang/Class;)I

    move-result v76

    .line 290
    const-class v5, Landroid/text/style/ParagraphStyle;

    move-object/from16 v0, v75

    move v1, v13

    move/from16 v2, v76

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v46

    .end local v46           #spans:[Landroid/text/style/ParagraphStyle;
    check-cast v46, [Landroid/text/style/ParagraphStyle;

    .line 292
    .restart local v46       #spans:[Landroid/text/style/ParagraphStyle;
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;

    move-object/from16 v61, v0

    .line 293
    move-object/from16 v0, v46

    array-length v0, v0

    move v5, v0

    const/4 v7, 0x1

    sub-int v72, v5, v7

    .restart local v72       #n:I
    :goto_19b
    if-ltz v72, :cond_1ab

    .line 294
    aget-object v5, v46, v72

    instance-of v5, v5, Landroid/text/style/AlignmentSpan;

    if-eqz v5, :cond_1fb

    .line 295
    aget-object p2, v46, v72

    check-cast p2, Landroid/text/style/AlignmentSpan;

    invoke-interface/range {p2 .. p2}, Landroid/text/style/AlignmentSpan;->getAlignment()Landroid/text/Layout$Alignment;

    move-result-object v61

    .line 302
    .end local v72           #n:I
    .end local v75           #sp:Landroid/text/Spanned;
    :cond_1ab
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getParagraphDirection(I)I

    move-result v20

    .line 303
    .local v20, dir:I
    const/16 v31, 0x0

    .line 304
    .local v31, left:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/Layout;->mWidth:I

    move/from16 v19, v0

    .line 308
    .local v19, right:I
    if-eqz v77, :cond_243

    .line 309
    move-object/from16 v0, v46

    array-length v0, v0

    move/from16 v70, v0

    .line 310
    .local v70, length:I
    const/16 v72, 0x0

    .restart local v72       #n:I
    :goto_1c3
    move/from16 v0, v72

    move/from16 v1, v70

    if-ge v0, v1, :cond_243

    .line 311
    aget-object v5, v46, v72

    instance-of v5, v5, Landroid/text/style/LeadingMarginSpan;

    if-eqz v5, :cond_1f8

    .line 312
    aget-object v16, v46, v72

    check-cast v16, Landroid/text/style/LeadingMarginSpan;

    .line 314
    .local v16, margin:Landroid/text/style/LeadingMarginSpan;
    const/4 v5, -0x1

    move/from16 v0, v20

    move v1, v5

    if-ne v0, v1, :cond_1fe

    move-object/from16 v17, p1

    move-object/from16 v18, v6

    move/from16 v21, v9

    move/from16 v22, v10

    move/from16 v23, v11

    move-object/from16 v24, v12

    move/from16 v25, v13

    move/from16 v26, v14

    move-object/from16 v28, p0

    .line 315
    invoke-interface/range {v16 .. v28}, Landroid/text/style/LeadingMarginSpan;->drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V

    .line 319
    move-object/from16 v0, v16

    move/from16 v1, v27

    invoke-interface {v0, v1}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v5

    sub-int v19, v19, v5

    .line 310
    .end local v16           #margin:Landroid/text/style/LeadingMarginSpan;
    :cond_1f8
    :goto_1f8
    add-int/lit8 v72, v72, 0x1

    goto :goto_1c3

    .line 293
    .end local v19           #right:I
    .end local v20           #dir:I
    .end local v31           #left:I
    .end local v70           #length:I
    .restart local v75       #sp:Landroid/text/Spanned;
    :cond_1fb
    add-int/lit8 v72, v72, -0x1

    goto :goto_19b

    .end local v75           #sp:Landroid/text/Spanned;
    .restart local v16       #margin:Landroid/text/style/LeadingMarginSpan;
    .restart local v19       #right:I
    .restart local v20       #dir:I
    .restart local v31       #left:I
    .restart local v70       #length:I
    :cond_1fe
    move-object/from16 v28, v16

    move-object/from16 v29, p1

    move-object/from16 v30, v6

    move/from16 v32, v20

    move/from16 v33, v9

    move/from16 v34, v10

    move/from16 v35, v11

    move-object/from16 v36, v12

    move/from16 v37, v13

    move/from16 v38, v14

    move/from16 v39, v27

    move-object/from16 v40, p0

    .line 321
    invoke-interface/range {v28 .. v40}, Landroid/text/style/LeadingMarginSpan;->drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V

    .line 325
    move/from16 v80, v27

    .line 326
    .local v80, useMargin:Z
    move-object/from16 v0, v16

    instance-of v0, v0, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;

    move v5, v0

    if-eqz v5, :cond_234

    .line 327
    move-object/from16 v0, v16

    check-cast v0, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;

    move-object/from16 v17, v0

    invoke-interface/range {v17 .. v17}, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;->getLeadingMarginLineCount()I

    move-result v63

    .line 328
    .local v63, count:I
    move/from16 v0, v63

    move v1, v15

    if-le v0, v1, :cond_23f

    const/4 v5, 0x1

    move/from16 v80, v5

    .line 330
    .end local v63           #count:I
    :cond_234
    :goto_234
    move-object/from16 v0, v16

    move/from16 v1, v80

    invoke-interface {v0, v1}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v5

    add-int v31, v31, v5

    goto :goto_1f8

    .line 328
    .restart local v63       #count:I
    :cond_23f
    const/4 v5, 0x0

    move/from16 v80, v5

    goto :goto_234

    .line 339
    .end local v16           #margin:Landroid/text/style/LeadingMarginSpan;
    .end local v63           #count:I
    .end local v70           #length:I
    .end local v72           #n:I
    .end local v80           #useMargin:Z
    :cond_243
    sget-object v5, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;

    move-object/from16 v0, v61

    move-object v1, v5

    if-ne v0, v1, :cond_2e2

    .line 340
    const/4 v5, 0x1

    move/from16 v0, v20

    move v1, v5

    if-ne v0, v1, :cond_2de

    .line 341
    move/from16 v81, v31

    .line 365
    .local v81, x:I
    :goto_252
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineDirections(I)Landroid/text/Layout$Directions;

    move-result-object v38

    .line 366
    .local v38, directions:Landroid/text/Layout$Directions;
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineContainsTab(I)Z

    move-result v45

    .line 367
    .local v45, hasTab:Z
    sget-object v5, Landroid/text/Layout;->DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;

    move-object/from16 v0, v38

    move-object v1, v5

    if-ne v0, v1, :cond_31c

    if-nez v77, :cond_31c

    if-nez v45, :cond_31c

    .line 374
    move/from16 v0, v81

    int-to-float v0, v0

    move/from16 v36, v0

    move v0, v10

    int-to-float v0, v0

    move/from16 v37, v0

    move-object/from16 v32, p1

    move-object/from16 v33, v12

    move/from16 v34, v13

    move/from16 v35, v14

    move-object/from16 v38, v6

    invoke-virtual/range {v32 .. v38}, Landroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V

    .line 382
    .end local v38           #directions:Landroid/text/Layout$Directions;
    :goto_281
    if-eqz v77, :cond_348

    .line 383
    move-object v0, v12

    check-cast v0, Landroid/text/Spanned;

    move-object/from16 v75, v0

    .line 385
    .restart local v75       #sp:Landroid/text/Spanned;
    const-class v5, Landroid/text/style/LineForegroundSpan;

    move-object/from16 v0, v75

    move v1, v13

    move v2, v14

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v67

    check-cast v67, [Landroid/text/style/LineForegroundSpan;

    .line 386
    .local v67, for_spans:[Landroid/text/style/LineForegroundSpan;
    move-object/from16 v0, v67

    array-length v0, v0

    move/from16 v70, v0

    .line 388
    .restart local v70       #length:I
    const/16 v72, 0x0

    .restart local v72       #n:I
    :goto_29c
    move/from16 v0, v72

    move/from16 v1, v70

    if-ge v0, v1, :cond_348

    .line 389
    aget-object v47, v67, v72

    .line 391
    .local v47, for_span:Landroid/text/style/LineForegroundSpan;
    move-object/from16 v0, v75

    move-object/from16 v1, v47

    invoke-interface {v0, v1}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I

    move-result v58

    .line 392
    .local v58, span_start:I
    move-object/from16 v0, v75

    move-object/from16 v1, v47

    invoke-interface {v0, v1}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I

    move-result v59

    .line 393
    .local v59, span_end:I
    move/from16 v0, v58

    move v1, v13

    if-lt v0, v1, :cond_340

    .line 394
    :goto_2b9
    move/from16 v0, v59

    move v1, v14

    if-gt v0, v1, :cond_344

    .line 396
    :goto_2be
    const/16 v50, 0x0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/Layout;->mWidth:I

    move/from16 v51, v0

    move-object/from16 v48, p1

    move-object/from16 v49, v6

    move/from16 v52, v9

    move/from16 v53, v10

    move/from16 v54, v11

    move-object/from16 v55, v12

    move/from16 v56, v13

    move/from16 v57, v14

    move/from16 v60, v15

    invoke-interface/range {v47 .. v60}, Landroid/text/style/LineForegroundSpan;->drawForeground(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIIII)V

    .line 388
    add-int/lit8 v72, v72, 0x1

    goto :goto_29c

    .line 343
    .end local v45           #hasTab:Z
    .end local v47           #for_span:Landroid/text/style/LineForegroundSpan;
    .end local v58           #span_start:I
    .end local v59           #span_end:I
    .end local v67           #for_spans:[Landroid/text/style/LineForegroundSpan;
    .end local v70           #length:I
    .end local v72           #n:I
    .end local v75           #sp:Landroid/text/Spanned;
    .end local v81           #x:I
    :cond_2de
    move/from16 v81, v19

    .restart local v81       #x:I
    goto/16 :goto_252

    .line 346
    .end local v81           #x:I
    :cond_2e2
    const/4 v5, 0x0

    move-object/from16 v0, p0

    move v1, v15

    move-object/from16 v2, v46

    move v3, v5

    invoke-direct {v0, v1, v2, v3}, Landroid/text/Layout;->getLineMax(I[Ljava/lang/Object;Z)F

    move-result v5

    move v0, v5

    float-to-int v0, v0

    move/from16 v71, v0

    .line 347
    .local v71, max:I
    sget-object v5, Landroid/text/Layout$Alignment;->ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;

    move-object/from16 v0, v61

    move-object v1, v5

    if-ne v0, v1, :cond_306

    .line 348
    const/4 v5, -0x1

    move/from16 v0, v20

    move v1, v5

    if-ne v0, v1, :cond_302

    .line 349
    add-int v81, v31, v71

    .restart local v81       #x:I
    goto/16 :goto_252

    .line 351
    .end local v81           #x:I
    :cond_302
    sub-int v81, v19, v71

    .restart local v81       #x:I
    goto/16 :goto_252

    .line 355
    .end local v81           #x:I
    :cond_306
    and-int/lit8 v71, v71, -0x2

    .line 356
    sub-int v5, v19, v31

    sub-int v5, v5, v71

    shr-int/lit8 v68, v5, 0x1

    .line 357
    .local v68, half:I
    const/4 v5, -0x1

    move/from16 v0, v20

    move v1, v5

    if-ne v0, v1, :cond_318

    .line 358
    sub-int v81, v19, v68

    .restart local v81       #x:I
    goto/16 :goto_252

    .line 360
    .end local v81           #x:I
    :cond_318
    add-int v81, v31, v68

    .restart local v81       #x:I
    goto/16 :goto_252

    .line 376
    .end local v68           #half:I
    .end local v71           #max:I
    .restart local v38       #directions:Landroid/text/Layout$Directions;
    .restart local v45       #hasTab:Z
    :cond_31c
    move/from16 v0, v81

    int-to-float v0, v0

    move/from16 v39, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v44, v0

    move-object/from16 v32, p0

    move-object/from16 v33, p1

    move-object/from16 v34, v12

    move/from16 v35, v13

    move/from16 v36, v14

    move/from16 v37, v20

    move/from16 v40, v9

    move/from16 v41, v10

    move/from16 v42, v11

    move-object/from16 v43, v6

    invoke-direct/range {v32 .. v46}, Landroid/text/Layout;->drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;FIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z[Ljava/lang/Object;)V

    goto/16 :goto_281

    .end local v38           #directions:Landroid/text/Layout$Directions;
    .restart local v47       #for_span:Landroid/text/style/LineForegroundSpan;
    .restart local v58       #span_start:I
    .restart local v59       #span_end:I
    .restart local v67       #for_spans:[Landroid/text/style/LineForegroundSpan;
    .restart local v70       #length:I
    .restart local v72       #n:I
    .restart local v75       #sp:Landroid/text/Spanned;
    :cond_340
    move/from16 v58, v13

    .line 393
    goto/16 :goto_2b9

    :cond_344
    move/from16 v59, v14

    .line 394
    goto/16 :goto_2be

    .line 268
    .end local v47           #for_span:Landroid/text/style/LineForegroundSpan;
    .end local v58           #span_start:I
    .end local v59           #span_end:I
    .end local v67           #for_spans:[Landroid/text/style/LineForegroundSpan;
    .end local v70           #length:I
    .end local v72           #n:I
    .end local v75           #sp:Landroid/text/Spanned;
    :cond_348
    add-int/lit8 v15, v15, 0x1

    goto/16 :goto_127
.end method

.method public draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;Landroid/text/TextPaint;I)V
    .registers 95
    .parameter "c"
    .parameter "highlight"
    .parameter "highlightPaint"
    .parameter "selecttxtpaint"
    .parameter "cursorOffsetVertical"

    .prologue
    .line 438
    const/16 v62, 0x0

    .line 439
    .local v62, bSelectionExist:Z
    const/16 v79, 0x0

    .local v79, selEnd:I
    const/16 v80, 0x0

    .line 441
    .local v80, selStart:I
    sget-object v5, Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;

    monitor-enter v5

    .line 442
    :try_start_9
    sget-object v6, Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;

    move-object/from16 v0, p1

    move-object v1, v6

    invoke-virtual {v0, v1}, Landroid/graphics/Canvas;->getClipBounds(Landroid/graphics/Rect;)Z

    move-result v6

    if-nez v6, :cond_16

    .line 443
    monitor-exit v5

    .line 729
    .end local p2
    :cond_15
    return-void

    .line 446
    .restart local p2
    :cond_16
    sget-object v6, Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;

    move-object v0, v6

    iget v0, v0, Landroid/graphics/Rect;->top:I

    move/from16 v66, v0

    .line 447
    .local v66, dtop:I
    sget-object v6, Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;

    move-object v0, v6

    iget v0, v0, Landroid/graphics/Rect;->bottom:I

    move/from16 v65, v0

    .line 448
    .local v65, dbottom:I
    monitor-exit v5
    :try_end_25
    .catchall {:try_start_9 .. :try_end_25} :catchall_e9

    .line 450
    const/16 v86, 0x0

    .line 451
    .local v86, top:I
    invoke-virtual/range {p0 .. p0}, Landroid/text/Layout;->getLineCount()I

    move-result v5

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v63

    .line 453
    .local v63, bottom:I
    move/from16 v0, v66

    move/from16 v1, v86

    if-le v0, v1, :cond_3a

    .line 454
    move/from16 v86, v66

    .line 456
    :cond_3a
    move/from16 v0, v65

    move/from16 v1, v63

    if-ge v0, v1, :cond_42

    .line 457
    move/from16 v63, v65

    .line 460
    :cond_42
    move-object/from16 v0, p0

    move/from16 v1, v86

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineForVertical(I)I

    move-result v68

    .line 461
    .local v68, first:I
    move-object/from16 v0, p0

    move/from16 v1, v63

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineForVertical(I)I

    move-result v71

    .line 463
    .local v71, last:I
    move-object/from16 v0, p0

    move/from16 v1, v68

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v77

    .line 464
    .local v77, previousLineBottom:I
    move-object/from16 v0, p0

    move/from16 v1, v68

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v78

    .line 466
    .local v78, previousLineEnd:I
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;

    move-object v6, v0

    .line 467
    .local v6, paint:Landroid/text/TextPaint;
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v12, v0

    .line 468
    .local v12, buf:Ljava/lang/CharSequence;
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/Layout;->mWidth:I

    move v8, v0

    .line 469
    .local v8, width:I
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/text/Layout;->mSpannedText:Z

    move/from16 v83, v0

    .line 471
    .local v83, spannedText:Z
    sget-object v46, Landroid/text/Layout;->NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;

    .line 472
    .local v46, spans:[Landroid/text/style/ParagraphStyle;
    const/16 v82, 0x0

    .line 473
    .local v82, spanend:I
    const/16 v85, 0x0

    .line 478
    .local v85, textLength:I
    if-eqz v83, :cond_103

    .line 479
    invoke-interface {v12}, Ljava/lang/CharSequence;->length()I

    move-result v85

    .line 480
    move/from16 v15, v68

    .local v15, i:I
    :goto_85
    move v0, v15

    move/from16 v1, v71

    if-gt v0, v1, :cond_ef

    .line 481
    move/from16 v13, v78

    .line 482
    .local v13, start:I
    add-int/lit8 v5, v15, 0x1

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v14

    .line 483
    .local v14, end:I
    move/from16 v78, v14

    .line 485
    move/from16 v9, v77

    .line 486
    .local v9, ltop:I
    add-int/lit8 v5, v15, 0x1

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v11

    .line 487
    .local v11, lbottom:I
    move/from16 v77, v11

    .line 488
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineDescent(I)I

    move-result v5

    sub-int v10, v11, v5

    .line 490
    .local v10, lbaseline:I
    move v0, v13

    move/from16 v1, v82

    if-lt v0, v1, :cond_d1

    .line 491
    move-object v0, v12

    check-cast v0, Landroid/text/Spanned;

    move-object/from16 v81, v0

    .line 492
    .local v81, sp:Landroid/text/Spanned;
    const-class v5, Landroid/text/style/LineBackgroundSpan;

    move-object/from16 v0, v81

    move v1, v13

    move/from16 v2, v85

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->nextSpanTransition(IILjava/lang/Class;)I

    move-result v82

    .line 494
    const-class v5, Landroid/text/style/LineBackgroundSpan;

    move-object/from16 v0, v81

    move v1, v13

    move/from16 v2, v82

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v46

    .end local v46           #spans:[Landroid/text/style/ParagraphStyle;
    check-cast v46, [Landroid/text/style/ParagraphStyle;

    .line 498
    .end local v81           #sp:Landroid/text/Spanned;
    .restart local v46       #spans:[Landroid/text/style/ParagraphStyle;
    :cond_d1
    const/16 v76, 0x0

    .local v76, n:I
    :goto_d3
    move-object/from16 v0, v46

    array-length v0, v0

    move v5, v0

    move/from16 v0, v76

    move v1, v5

    if-ge v0, v1, :cond_ec

    .line 499
    aget-object v4, v46, v76

    check-cast v4, Landroid/text/style/LineBackgroundSpan;

    .line 501
    .local v4, back:Landroid/text/style/LineBackgroundSpan;
    const/4 v7, 0x0

    move-object/from16 v5, p1

    invoke-interface/range {v4 .. v15}, Landroid/text/style/LineBackgroundSpan;->drawBackground(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;III)V

    .line 498
    add-int/lit8 v76, v76, 0x1

    goto :goto_d3

    .line 448
    .end local v4           #back:Landroid/text/style/LineBackgroundSpan;
    .end local v6           #paint:Landroid/text/TextPaint;
    .end local v8           #width:I
    .end local v9           #ltop:I
    .end local v10           #lbaseline:I
    .end local v11           #lbottom:I
    .end local v12           #buf:Ljava/lang/CharSequence;
    .end local v13           #start:I
    .end local v14           #end:I
    .end local v15           #i:I
    .end local v46           #spans:[Landroid/text/style/ParagraphStyle;
    .end local v63           #bottom:I
    .end local v65           #dbottom:I
    .end local v66           #dtop:I
    .end local v68           #first:I
    .end local v71           #last:I
    .end local v76           #n:I
    .end local v77           #previousLineBottom:I
    .end local v78           #previousLineEnd:I
    .end local v82           #spanend:I
    .end local v83           #spannedText:Z
    .end local v85           #textLength:I
    .end local v86           #top:I
    :catchall_e9
    move-exception v6

    :try_start_ea
    monitor-exit v5
    :try_end_eb
    .catchall {:try_start_ea .. :try_end_eb} :catchall_e9

    throw v6

    .line 480
    .restart local v6       #paint:Landroid/text/TextPaint;
    .restart local v8       #width:I
    .restart local v9       #ltop:I
    .restart local v10       #lbaseline:I
    .restart local v11       #lbottom:I
    .restart local v12       #buf:Ljava/lang/CharSequence;
    .restart local v13       #start:I
    .restart local v14       #end:I
    .restart local v15       #i:I
    .restart local v46       #spans:[Landroid/text/style/ParagraphStyle;
    .restart local v63       #bottom:I
    .restart local v65       #dbottom:I
    .restart local v66       #dtop:I
    .restart local v68       #first:I
    .restart local v71       #last:I
    .restart local v76       #n:I
    .restart local v77       #previousLineBottom:I
    .restart local v78       #previousLineEnd:I
    .restart local v82       #spanend:I
    .restart local v83       #spannedText:Z
    .restart local v85       #textLength:I
    .restart local v86       #top:I
    :cond_ec
    add-int/lit8 v15, v15, 0x1

    goto :goto_85

    .line 508
    .end local v9           #ltop:I
    .end local v10           #lbaseline:I
    .end local v11           #lbottom:I
    .end local v13           #start:I
    .end local v14           #end:I
    .end local v76           #n:I
    :cond_ef
    const/16 v82, 0x0

    .line 509
    move-object/from16 v0, p0

    move/from16 v1, v68

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v77

    .line 510
    move-object/from16 v0, p0

    move/from16 v1, v68

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v78

    .line 511
    sget-object v46, Landroid/text/Layout;->NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;

    .line 516
    .end local v15           #i:I
    :cond_103
    if-eqz p2, :cond_14c

    .line 517
    if-eqz p5, :cond_113

    .line 518
    const/4 v5, 0x0

    move/from16 v0, p5

    int-to-float v0, v0

    move v7, v0

    move-object/from16 v0, p1

    move v1, v5

    move v2, v7

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Canvas;->translate(FF)V

    .line 521
    :cond_113
    invoke-virtual/range {p1 .. p3}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V

    .line 523
    if-eqz p5, :cond_125

    .line 524
    const/4 v5, 0x0

    move/from16 v0, p5

    neg-int v0, v0

    move v7, v0

    int-to-float v7, v7

    move-object/from16 v0, p1

    move v1, v5

    move v2, v7

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Canvas;->translate(FF)V

    .line 528
    :cond_125
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v5, v0

    invoke-static {v5}, Landroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I

    move-result v80

    .line 529
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v5, v0

    invoke-static {v5}, Landroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I

    move-result v79

    .line 530
    move/from16 v0, v80

    move/from16 v1, v79

    if-eq v0, v1, :cond_24d

    const/4 v5, 0x1

    move/from16 v62, v5

    .line 532
    :goto_140
    move/from16 v0, v80

    move/from16 v1, v79

    if-le v0, v1, :cond_14c

    .line 534
    move/from16 v84, v80

    .line 535
    .local v84, temp:I
    move/from16 v80, v79

    .line 536
    move/from16 v79, v84

    .line 540
    .end local v84           #temp:I
    :cond_14c
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;

    move-object/from16 v61, v0

    .line 545
    .local v61, align:Landroid/text/Layout$Alignment;
    move/from16 v15, v68

    .end local p2
    .restart local v15       #i:I
    :goto_154
    move v0, v15

    move/from16 v1, v71

    if-gt v0, v1, :cond_15

    .line 546
    move/from16 v13, v78

    .line 548
    .restart local v13       #start:I
    add-int/lit8 v5, v15, 0x1

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v78

    .line 549
    move-object/from16 v0, p0

    move v1, v15

    move v2, v13

    move/from16 v3, v78

    invoke-direct {v0, v1, v2, v3}, Landroid/text/Layout;->getLineVisibleEnd(III)I

    move-result v14

    .line 551
    .restart local v14       #end:I
    move/from16 v9, v77

    .line 552
    .restart local v9       #ltop:I
    add-int/lit8 v5, v15, 0x1

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v11

    .line 553
    .restart local v11       #lbottom:I
    move/from16 v77, v11

    .line 554
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineDescent(I)I

    move-result v5

    sub-int v10, v11, v5

    .line 556
    .restart local v10       #lbaseline:I
    const/16 v73, -0x1

    .line 557
    .local v73, line_sel_end:I
    const/16 v74, -0x1

    .line 559
    .local v74, line_sel_start:I
    if-eqz v62, :cond_1a9

    .line 561
    move v0, v13

    move/from16 v1, v80

    if-lt v0, v1, :cond_196

    move v0, v13

    move/from16 v1, v79

    if-gt v0, v1, :cond_196

    .line 562
    move/from16 v80, v13

    .line 565
    :cond_196
    move/from16 v0, v80

    move v1, v13

    if-lt v0, v1, :cond_1a9

    move/from16 v0, v80

    move v1, v14

    if-gt v0, v1, :cond_1a9

    .line 566
    move/from16 v74, v80

    .line 567
    move/from16 v0, v79

    move v1, v14

    if-le v0, v1, :cond_252

    move/from16 v73, v14

    .line 571
    :cond_1a9
    :goto_1a9
    const/16 v27, 0x0

    .line 572
    .local v27, isFirstParaLine:Z
    if-eqz v83, :cond_1fd

    .line 573
    if-eqz v13, :cond_1ba

    const/4 v5, 0x1

    sub-int v5, v13, v5

    invoke-interface {v12, v5}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v5

    const/16 v7, 0xa

    if-ne v5, v7, :cond_1bc

    .line 574
    :cond_1ba
    const/16 v27, 0x1

    .line 578
    :cond_1bc
    move v0, v13

    move/from16 v1, v82

    if-lt v0, v1, :cond_1fd

    .line 579
    move-object v0, v12

    check-cast v0, Landroid/text/Spanned;

    move-object/from16 v81, v0

    .line 580
    .restart local v81       #sp:Landroid/text/Spanned;
    const-class v5, Landroid/text/style/ParagraphStyle;

    move-object/from16 v0, v81

    move v1, v13

    move/from16 v2, v85

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->nextSpanTransition(IILjava/lang/Class;)I

    move-result v82

    .line 582
    const-class v5, Landroid/text/style/ParagraphStyle;

    move-object/from16 v0, v81

    move v1, v13

    move/from16 v2, v82

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v46

    .end local v46           #spans:[Landroid/text/style/ParagraphStyle;
    check-cast v46, [Landroid/text/style/ParagraphStyle;

    .line 584
    .restart local v46       #spans:[Landroid/text/style/ParagraphStyle;
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;

    move-object/from16 v61, v0

    .line 585
    move-object/from16 v0, v46

    array-length v0, v0

    move v5, v0

    const/4 v7, 0x1

    sub-int v76, v5, v7

    .restart local v76       #n:I
    :goto_1ed
    if-ltz v76, :cond_1fd

    .line 586
    aget-object v5, v46, v76

    instance-of v5, v5, Landroid/text/style/AlignmentSpan;

    if-eqz v5, :cond_256

    .line 587
    aget-object p2, v46, v76

    check-cast p2, Landroid/text/style/AlignmentSpan;

    invoke-interface/range {p2 .. p2}, Landroid/text/style/AlignmentSpan;->getAlignment()Landroid/text/Layout$Alignment;

    move-result-object v61

    .line 594
    .end local v76           #n:I
    .end local v81           #sp:Landroid/text/Spanned;
    :cond_1fd
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getParagraphDirection(I)I

    move-result v20

    .line 595
    .local v20, dir:I
    const/16 v31, 0x0

    .line 596
    .local v31, left:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/Layout;->mWidth:I

    move/from16 v19, v0

    .line 600
    .local v19, right:I
    if-eqz v83, :cond_29e

    .line 601
    move-object/from16 v0, v46

    array-length v0, v0

    move/from16 v72, v0

    .line 602
    .local v72, length:I
    const/16 v76, 0x0

    .restart local v76       #n:I
    :goto_215
    move/from16 v0, v76

    move/from16 v1, v72

    if-ge v0, v1, :cond_29e

    .line 603
    aget-object v5, v46, v76

    instance-of v5, v5, Landroid/text/style/LeadingMarginSpan;

    if-eqz v5, :cond_24a

    .line 604
    aget-object v16, v46, v76

    check-cast v16, Landroid/text/style/LeadingMarginSpan;

    .line 606
    .local v16, margin:Landroid/text/style/LeadingMarginSpan;
    const/4 v5, -0x1

    move/from16 v0, v20

    move v1, v5

    if-ne v0, v1, :cond_259

    move-object/from16 v17, p1

    move-object/from16 v18, v6

    move/from16 v21, v9

    move/from16 v22, v10

    move/from16 v23, v11

    move-object/from16 v24, v12

    move/from16 v25, v13

    move/from16 v26, v14

    move-object/from16 v28, p0

    .line 607
    invoke-interface/range {v16 .. v28}, Landroid/text/style/LeadingMarginSpan;->drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V

    .line 611
    move-object/from16 v0, v16

    move/from16 v1, v27

    invoke-interface {v0, v1}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v5

    sub-int v19, v19, v5

    .line 602
    .end local v16           #margin:Landroid/text/style/LeadingMarginSpan;
    :cond_24a
    :goto_24a
    add-int/lit8 v76, v76, 0x1

    goto :goto_215

    .line 530
    .end local v9           #ltop:I
    .end local v10           #lbaseline:I
    .end local v11           #lbottom:I
    .end local v13           #start:I
    .end local v14           #end:I
    .end local v15           #i:I
    .end local v19           #right:I
    .end local v20           #dir:I
    .end local v27           #isFirstParaLine:Z
    .end local v31           #left:I
    .end local v61           #align:Landroid/text/Layout$Alignment;
    .end local v72           #length:I
    .end local v73           #line_sel_end:I
    .end local v74           #line_sel_start:I
    .end local v76           #n:I
    .restart local p2
    :cond_24d
    const/4 v5, 0x0

    move/from16 v62, v5

    goto/16 :goto_140

    .end local p2
    .restart local v9       #ltop:I
    .restart local v10       #lbaseline:I
    .restart local v11       #lbottom:I
    .restart local v13       #start:I
    .restart local v14       #end:I
    .restart local v15       #i:I
    .restart local v61       #align:Landroid/text/Layout$Alignment;
    .restart local v73       #line_sel_end:I
    .restart local v74       #line_sel_start:I
    :cond_252
    move/from16 v73, v79

    .line 567
    goto/16 :goto_1a9

    .line 585
    .restart local v27       #isFirstParaLine:Z
    .restart local v76       #n:I
    .restart local v81       #sp:Landroid/text/Spanned;
    :cond_256
    add-int/lit8 v76, v76, -0x1

    goto :goto_1ed

    .end local v81           #sp:Landroid/text/Spanned;
    .restart local v16       #margin:Landroid/text/style/LeadingMarginSpan;
    .restart local v19       #right:I
    .restart local v20       #dir:I
    .restart local v31       #left:I
    .restart local v72       #length:I
    :cond_259
    move-object/from16 v28, v16

    move-object/from16 v29, p1

    move-object/from16 v30, v6

    move/from16 v32, v20

    move/from16 v33, v9

    move/from16 v34, v10

    move/from16 v35, v11

    move-object/from16 v36, v12

    move/from16 v37, v13

    move/from16 v38, v14

    move/from16 v39, v27

    move-object/from16 v40, p0

    .line 613
    invoke-interface/range {v28 .. v40}, Landroid/text/style/LeadingMarginSpan;->drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V

    .line 617
    move/from16 v87, v27

    .line 618
    .local v87, useMargin:Z
    move-object/from16 v0, v16

    instance-of v0, v0, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;

    move v5, v0

    if-eqz v5, :cond_28f

    .line 619
    move-object/from16 v0, v16

    check-cast v0, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;

    move-object/from16 v17, v0

    invoke-interface/range {v17 .. v17}, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;->getLeadingMarginLineCount()I

    move-result v64

    .line 620
    .local v64, count:I
    move/from16 v0, v64

    move v1, v15

    if-le v0, v1, :cond_29a

    const/4 v5, 0x1

    move/from16 v87, v5

    .line 622
    .end local v64           #count:I
    :cond_28f
    :goto_28f
    move-object/from16 v0, v16

    move/from16 v1, v87

    invoke-interface {v0, v1}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v5

    add-int v31, v31, v5

    goto :goto_24a

    .line 620
    .restart local v64       #count:I
    :cond_29a
    const/4 v5, 0x0

    move/from16 v87, v5

    goto :goto_28f

    .line 631
    .end local v16           #margin:Landroid/text/style/LeadingMarginSpan;
    .end local v64           #count:I
    .end local v72           #length:I
    .end local v76           #n:I
    .end local v87           #useMargin:Z
    :cond_29e
    sget-object v5, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;

    move-object/from16 v0, v61

    move-object v1, v5

    if-ne v0, v1, :cond_315

    .line 632
    const/4 v5, 0x1

    move/from16 v0, v20

    move v1, v5

    if-ne v0, v1, :cond_312

    .line 633
    move/from16 v88, v31

    .line 657
    .local v88, x:I
    :goto_2ad
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineDirections(I)Landroid/text/Layout$Directions;

    move-result-object v38

    .line 658
    .local v38, directions:Landroid/text/Layout$Directions;
    move-object/from16 v0, p0

    move v1, v15

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineContainsTab(I)Z

    move-result v45

    .line 659
    .local v45, hasTab:Z
    sget-object v5, Landroid/text/Layout;->DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;

    move-object/from16 v0, v38

    move-object v1, v5

    if-ne v0, v1, :cond_37d

    if-nez v83, :cond_37d

    if-nez v45, :cond_37d

    .line 666
    if-eqz v62, :cond_366

    .line 667
    if-ltz v74, :cond_34f

    if-ltz v73, :cond_34f

    .line 668
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v36, v0

    move v0, v10

    int-to-float v0, v0

    move/from16 v37, v0

    move-object/from16 v32, p1

    move-object/from16 v33, v12

    move/from16 v34, v13

    move/from16 v35, v74

    move-object/from16 v38, v6

    invoke-virtual/range {v32 .. v38}, Landroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V

    .line 669
    .end local v38           #directions:Landroid/text/Layout$Directions;
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v36, v0

    move v0, v10

    int-to-float v0, v0

    move/from16 v37, v0

    move-object/from16 v32, p1

    move-object/from16 v33, v12

    move/from16 v34, v74

    move/from16 v35, v73

    move-object/from16 v38, p4

    invoke-virtual/range {v32 .. v38}, Landroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V

    .line 670
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v36, v0

    move v0, v10

    int-to-float v0, v0

    move/from16 v37, v0

    move-object/from16 v32, p1

    move-object/from16 v33, v12

    move/from16 v34, v73

    move/from16 v35, v14

    move-object/from16 v38, v6

    invoke-virtual/range {v32 .. v38}, Landroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V

    .line 545
    :cond_30e
    :goto_30e
    add-int/lit8 v15, v15, 0x1

    goto/16 :goto_154

    .line 635
    .end local v45           #hasTab:Z
    .end local v88           #x:I
    :cond_312
    move/from16 v88, v19

    .restart local v88       #x:I
    goto :goto_2ad

    .line 638
    .end local v88           #x:I
    :cond_315
    const/4 v5, 0x0

    move-object/from16 v0, p0

    move v1, v15

    move-object/from16 v2, v46

    move v3, v5

    invoke-direct {v0, v1, v2, v3}, Landroid/text/Layout;->getLineMax(I[Ljava/lang/Object;Z)F

    move-result v5

    move v0, v5

    float-to-int v0, v0

    move/from16 v75, v0

    .line 639
    .local v75, max:I
    sget-object v5, Landroid/text/Layout$Alignment;->ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;

    move-object/from16 v0, v61

    move-object v1, v5

    if-ne v0, v1, :cond_339

    .line 640
    const/4 v5, -0x1

    move/from16 v0, v20

    move v1, v5

    if-ne v0, v1, :cond_335

    .line 641
    add-int v88, v31, v75

    .restart local v88       #x:I
    goto/16 :goto_2ad

    .line 643
    .end local v88           #x:I
    :cond_335
    sub-int v88, v19, v75

    .restart local v88       #x:I
    goto/16 :goto_2ad

    .line 647
    .end local v88           #x:I
    :cond_339
    and-int/lit8 v75, v75, -0x2

    .line 648
    sub-int v5, v19, v31

    sub-int v5, v5, v75

    shr-int/lit8 v70, v5, 0x1

    .line 649
    .local v70, half:I
    const/4 v5, -0x1

    move/from16 v0, v20

    move v1, v5

    if-ne v0, v1, :cond_34b

    .line 650
    sub-int v88, v19, v70

    .restart local v88       #x:I
    goto/16 :goto_2ad

    .line 652
    .end local v88           #x:I
    :cond_34b
    add-int v88, v31, v70

    .restart local v88       #x:I
    goto/16 :goto_2ad

    .line 674
    .end local v70           #half:I
    .end local v75           #max:I
    .restart local v38       #directions:Landroid/text/Layout$Directions;
    .restart local v45       #hasTab:Z
    :cond_34f
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v36, v0

    move v0, v10

    int-to-float v0, v0

    move/from16 v37, v0

    move-object/from16 v32, p1

    move-object/from16 v33, v12

    move/from16 v34, v13

    move/from16 v35, v14

    move-object/from16 v38, v6

    invoke-virtual/range {v32 .. v38}, Landroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V

    goto :goto_30e

    .line 677
    :cond_366
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v36, v0

    move v0, v10

    int-to-float v0, v0

    move/from16 v37, v0

    move-object/from16 v32, p1

    move-object/from16 v33, v12

    move/from16 v34, v13

    move/from16 v35, v14

    move-object/from16 v38, v6

    invoke-virtual/range {v32 .. v38}, Landroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V

    goto :goto_30e

    .line 680
    :cond_37d
    if-eqz v62, :cond_48b

    .line 681
    if-ltz v74, :cond_468

    if-ltz v73, :cond_468

    .line 682
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v39, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v44, v0

    move-object/from16 v32, p0

    move-object/from16 v33, p1

    move-object/from16 v34, v12

    move/from16 v35, v13

    move/from16 v36, v74

    move/from16 v37, v20

    move/from16 v40, v9

    move/from16 v41, v10

    move/from16 v42, v11

    move-object/from16 v43, v6

    invoke-direct/range {v32 .. v46}, Landroid/text/Layout;->drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;FIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z[Ljava/lang/Object;)V

    .line 686
    move-object/from16 v0, p0

    move/from16 v1, v74

    invoke-direct {v0, v1}, Landroid/text/Layout;->getTextRectByOffset(I)Landroid/graphics/RectF;

    move-result-object v67

    .line 687
    .local v67, f:Landroid/graphics/RectF;
    move-object/from16 v0, v67

    iget v0, v0, Landroid/graphics/RectF;->left:F

    move v5, v0

    move v0, v5

    float-to-int v0, v0

    move/from16 v88, v0

    .line 688
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v39, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v44, v0

    move-object/from16 v32, p0

    move-object/from16 v33, p1

    move-object/from16 v34, v12

    move/from16 v35, v74

    move/from16 v36, v73

    move/from16 v37, v20

    move/from16 v40, v9

    move/from16 v41, v10

    move/from16 v42, v11

    move-object/from16 v43, p4

    invoke-direct/range {v32 .. v46}, Landroid/text/Layout;->drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;FIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z[Ljava/lang/Object;)V

    .line 692
    move-object/from16 v0, p0

    move/from16 v1, v73

    invoke-direct {v0, v1}, Landroid/text/Layout;->getTextRectByOffset(I)Landroid/graphics/RectF;

    move-result-object v67

    .line 693
    move-object/from16 v0, v67

    iget v0, v0, Landroid/graphics/RectF;->left:F

    move v5, v0

    move v0, v5

    float-to-int v0, v0

    move/from16 v88, v0

    .line 694
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v39, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v44, v0

    move-object/from16 v32, p0

    move-object/from16 v33, p1

    move-object/from16 v34, v12

    move/from16 v35, v73

    move/from16 v36, v14

    move/from16 v37, v20

    move/from16 v40, v9

    move/from16 v41, v10

    move/from16 v42, v11

    move-object/from16 v43, v6

    invoke-direct/range {v32 .. v46}, Landroid/text/Layout;->drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;FIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z[Ljava/lang/Object;)V

    .line 709
    .end local v67           #f:Landroid/graphics/RectF;
    :goto_40b
    if-eqz v83, :cond_30e

    .line 710
    move-object v0, v12

    check-cast v0, Landroid/text/Spanned;

    move-object/from16 v81, v0

    .line 712
    .restart local v81       #sp:Landroid/text/Spanned;
    const-class v5, Landroid/text/style/LineForegroundSpan;

    move-object/from16 v0, v81

    move v1, v13

    move v2, v14

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v69

    check-cast v69, [Landroid/text/style/LineForegroundSpan;

    .line 713
    .local v69, for_spans:[Landroid/text/style/LineForegroundSpan;
    move-object/from16 v0, v69

    array-length v0, v0

    move/from16 v72, v0

    .line 715
    .restart local v72       #length:I
    const/16 v76, 0x0

    .restart local v76       #n:I
    :goto_426
    move/from16 v0, v76

    move/from16 v1, v72

    if-ge v0, v1, :cond_30e

    .line 716
    aget-object v47, v69, v76

    .line 718
    .local v47, for_span:Landroid/text/style/LineForegroundSpan;
    move-object/from16 v0, v81

    move-object/from16 v1, v47

    invoke-interface {v0, v1}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I

    move-result v58

    .line 719
    .local v58, span_start:I
    move-object/from16 v0, v81

    move-object/from16 v1, v47

    invoke-interface {v0, v1}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I

    move-result v59

    .line 720
    .local v59, span_end:I
    move/from16 v0, v58

    move v1, v13

    if-lt v0, v1, :cond_4af

    .line 721
    :goto_443
    move/from16 v0, v59

    move v1, v14

    if-gt v0, v1, :cond_4b2

    .line 723
    :goto_448
    const/16 v50, 0x0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/Layout;->mWidth:I

    move/from16 v51, v0

    move-object/from16 v48, p1

    move-object/from16 v49, v6

    move/from16 v52, v9

    move/from16 v53, v10

    move/from16 v54, v11

    move-object/from16 v55, v12

    move/from16 v56, v13

    move/from16 v57, v14

    move/from16 v60, v15

    invoke-interface/range {v47 .. v60}, Landroid/text/style/LineForegroundSpan;->drawForeground(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIIII)V

    .line 715
    add-int/lit8 v76, v76, 0x1

    goto :goto_426

    .line 698
    .end local v47           #for_span:Landroid/text/style/LineForegroundSpan;
    .end local v58           #span_start:I
    .end local v59           #span_end:I
    .end local v69           #for_spans:[Landroid/text/style/LineForegroundSpan;
    .end local v72           #length:I
    .end local v76           #n:I
    .end local v81           #sp:Landroid/text/Spanned;
    :cond_468
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v39, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v44, v0

    move-object/from16 v32, p0

    move-object/from16 v33, p1

    move-object/from16 v34, v12

    move/from16 v35, v13

    move/from16 v36, v14

    move/from16 v37, v20

    move/from16 v40, v9

    move/from16 v41, v10

    move/from16 v42, v11

    move-object/from16 v43, v6

    invoke-direct/range {v32 .. v46}, Landroid/text/Layout;->drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;FIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z[Ljava/lang/Object;)V

    goto :goto_40b

    .line 703
    :cond_48b
    move/from16 v0, v88

    int-to-float v0, v0

    move/from16 v39, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v44, v0

    move-object/from16 v32, p0

    move-object/from16 v33, p1

    move-object/from16 v34, v12

    move/from16 v35, v13

    move/from16 v36, v14

    move/from16 v37, v20

    move/from16 v40, v9

    move/from16 v41, v10

    move/from16 v42, v11

    move-object/from16 v43, v6

    invoke-direct/range {v32 .. v46}, Landroid/text/Layout;->drawText(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;FIIILandroid/text/TextPaint;Landroid/text/TextPaint;Z[Ljava/lang/Object;)V

    goto/16 :goto_40b

    .restart local v47       #for_span:Landroid/text/style/LineForegroundSpan;
    .restart local v58       #span_start:I
    .restart local v59       #span_end:I
    .restart local v69       #for_spans:[Landroid/text/style/LineForegroundSpan;
    .restart local v72       #length:I
    .restart local v76       #n:I
    .restart local v81       #sp:Landroid/text/Spanned;
    :cond_4af
    move/from16 v58, v13

    .line 720
    goto :goto_443

    :cond_4b2
    move/from16 v59, v14

    .line 721
    goto :goto_448
.end method

.method public final getAlignment()Landroid/text/Layout$Alignment;
    .registers 2

    .prologue
    .line 787
    iget-object v0, p0, Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;

    return-object v0
.end method

.method public abstract getBottomPadding()I
.end method

.method public getCursorPath(ILandroid/graphics/Path;Ljava/lang/CharSequence;)V
    .registers 27
    .parameter "point"
    .parameter "dest"
    .parameter "editingBuffer"

    .prologue
    .line 1478
    invoke-virtual/range {p2 .. p2}, Landroid/graphics/Path;->reset()V

    .line 1480
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v16

    .line 1481
    .local v16, line:I
    move-object/from16 v0, p0

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v17

    .line 1482
    .local v17, top:I
    add-int/lit8 v20, v16, 0x1

    move-object/from16 v0, p0

    move/from16 v1, v20

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v5

    .line 1484
    .local v5, bottom:I
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v20

    const/high16 v21, 0x3f00

    sub-float v9, v20, v21

    .line 1485
    .local v9, h1:F
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getSecondaryHorizontal(I)F

    move-result v20

    const/high16 v21, 0x3f00

    sub-float v12, v20, v21

    .line 1487
    .local v12, h2:F
    const/16 v20, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v20

    invoke-static {v0, v1}, Landroid/text/method/TextKeyListener;->getMetaState(Ljava/lang/CharSequence;I)I

    move-result v20

    const/high16 v21, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v21

    invoke-static {v0, v1}, Landroid/text/method/TextKeyListener;->getMetaState(Ljava/lang/CharSequence;I)I

    move-result v21

    or-int v6, v20, v21

    .line 1491
    .local v6, caps:I
    const/16 v20, 0x2

    move-object/from16 v0, p3

    move/from16 v1, v20

    invoke-static {v0, v1}, Landroid/text/method/TextKeyListener;->getMetaState(Ljava/lang/CharSequence;I)I

    move-result v8

    .line 1493
    .local v8, fn:I
    const/4 v7, 0x0

    .line 1495
    .local v7, dist:I
    if-nez v6, :cond_4e

    if-eqz v8, :cond_59

    .line 1496
    :cond_4e
    sub-int v20, v5, v17

    shr-int/lit8 v7, v20, 0x2

    .line 1498
    if-eqz v8, :cond_56

    .line 1499
    add-int v17, v17, v7

    .line 1500
    :cond_56
    if-eqz v6, :cond_59

    .line 1501
    sub-int/2addr v5, v7

    .line 1504
    :cond_59
    const/high16 v20, 0x3f00

    cmpg-float v20, v9, v20

    if-gez v20, :cond_61

    .line 1505
    const/high16 v9, 0x3f00

    .line 1506
    :cond_61
    const/high16 v20, 0x3f00

    cmpg-float v20, v12, v20

    if-gez v20, :cond_69

    .line 1507
    const/high16 v12, 0x3f00

    .line 1509
    :cond_69
    cmpl-float v20, v9, v12

    if-nez v20, :cond_ff

    .line 1510
    move/from16 v0, v17

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1511
    move v0, v5

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1560
    :goto_86
    const/16 v20, 0x2

    move v0, v6

    move/from16 v1, v20

    if-ne v0, v1, :cond_13c

    .line 1561
    add-int v20, v5, v7

    move/from16 v0, v20

    int-to-float v0, v0

    move v3, v0

    .line 1562
    .local v3, botmPlusDist:F
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    add-float v14, v12, v20

    .line 1563
    .local v14, h2PlusDist:F
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    sub-float v13, v12, v20

    .line 1565
    .local v13, h2MinusDist:F
    move v0, v5

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v12

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1566
    move-object/from16 v0, p2

    move v1, v13

    move v2, v3

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1567
    move v0, v5

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v12

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1568
    move-object/from16 v0, p2

    move v1, v14

    move v2, v3

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1570
    const/high16 v20, 0x3f00

    sub-float v3, v3, v20

    .line 1572
    const/4 v15, 0x0

    .local v15, i:F
    :goto_ca
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    cmpg-float v20, v15, v20

    if-gez v20, :cond_1bb

    .line 1574
    move v0, v5

    int-to-float v0, v0

    move/from16 v20, v0

    add-float v4, v20, v15

    .line 1576
    .local v4, botmPlusI:F
    move-object/from16 v0, p2

    move v1, v12

    move v2, v4

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1577
    sub-float v20, v14, v15

    move-object/from16 v0, p2

    move/from16 v1, v20

    move v2, v3

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1579
    move-object/from16 v0, p2

    move v1, v12

    move v2, v4

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1580
    add-float v20, v13, v15

    move-object/from16 v0, p2

    move/from16 v1, v20

    move v2, v3

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1572
    const/high16 v20, 0x3f80

    add-float v15, v15, v20

    goto :goto_ca

    .line 1513
    .end local v3           #botmPlusDist:F
    .end local v4           #botmPlusI:F
    .end local v13           #h2MinusDist:F
    .end local v14           #h2PlusDist:F
    .end local v15           #i:F
    :cond_ff
    move/from16 v0, v17

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1514
    add-int v20, v17, v5

    shr-int/lit8 v20, v20, 0x1

    move/from16 v0, v20

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1516
    add-int v20, v17, v5

    shr-int/lit8 v20, v20, 0x1

    move/from16 v0, v20

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v12

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1517
    move v0, v5

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v12

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    goto/16 :goto_86

    .line 1582
    :cond_13c
    const/16 v20, 0x1

    move v0, v6

    move/from16 v1, v20

    if-ne v0, v1, :cond_1bb

    .line 1583
    move v0, v5

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v12

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1584
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    sub-float v20, v12, v20

    add-int v21, v5, v7

    move/from16 v0, v21

    int-to-float v0, v0

    move/from16 v21, v0

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v21

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1586
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    sub-float v20, v12, v20

    add-int v21, v5, v7

    move/from16 v0, v21

    int-to-float v0, v0

    move/from16 v21, v0

    const/high16 v22, 0x3f00

    sub-float v21, v21, v22

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v21

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1587
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    add-float v20, v20, v12

    add-int v21, v5, v7

    move/from16 v0, v21

    int-to-float v0, v0

    move/from16 v21, v0

    const/high16 v22, 0x3f00

    sub-float v21, v21, v22

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v21

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1589
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    add-float v20, v20, v12

    add-int v21, v5, v7

    move/from16 v0, v21

    int-to-float v0, v0

    move/from16 v21, v0

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v21

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1590
    move v0, v5

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v12

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1594
    :cond_1bb
    const/16 v20, 0x2

    move v0, v8

    move/from16 v1, v20

    if-ne v0, v1, :cond_23e

    .line 1595
    sub-int v20, v17, v7

    move/from16 v0, v20

    int-to-float v0, v0

    move/from16 v18, v0

    .line 1596
    .local v18, topMinusDist:F
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    add-float v11, v9, v20

    .line 1597
    .local v11, h1PlusDist:F
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    sub-float v10, v9, v20

    .line 1599
    .local v10, h1MinusDist:F
    move/from16 v0, v17

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1600
    move-object/from16 v0, p2

    move v1, v10

    move/from16 v2, v18

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1601
    move/from16 v0, v17

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1602
    move-object/from16 v0, p2

    move v1, v11

    move/from16 v2, v18

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1604
    const/high16 v20, 0x3f00

    add-float v18, v18, v20

    .line 1606
    const/4 v15, 0x0

    .restart local v15       #i:F
    :goto_204
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    cmpg-float v20, v15, v20

    if-gez v20, :cond_2bf

    .line 1608
    move/from16 v0, v17

    int-to-float v0, v0

    move/from16 v20, v0

    sub-float v19, v20, v15

    .line 1610
    .local v19, topMinusI:F
    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v19

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1611
    sub-float v20, v11, v15

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v18

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1613
    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v19

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1614
    add-float v20, v10, v15

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v18

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1606
    const/high16 v20, 0x3f80

    add-float v15, v15, v20

    goto :goto_204

    .line 1616
    .end local v10           #h1MinusDist:F
    .end local v11           #h1PlusDist:F
    .end local v15           #i:F
    .end local v18           #topMinusDist:F
    .end local v19           #topMinusI:F
    :cond_23e
    const/16 v20, 0x1

    move v0, v8

    move/from16 v1, v20

    if-ne v0, v1, :cond_2bf

    .line 1617
    move/from16 v0, v17

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1618
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    sub-float v20, v9, v20

    sub-int v21, v17, v7

    move/from16 v0, v21

    int-to-float v0, v0

    move/from16 v21, v0

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v21

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1620
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    sub-float v20, v9, v20

    sub-int v21, v17, v7

    move/from16 v0, v21

    int-to-float v0, v0

    move/from16 v21, v0

    const/high16 v22, 0x3f00

    add-float v21, v21, v22

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v21

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1621
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    add-float v20, v20, v9

    sub-int v21, v17, v7

    move/from16 v0, v21

    int-to-float v0, v0

    move/from16 v21, v0

    const/high16 v22, 0x3f00

    add-float v21, v21, v22

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v21

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1623
    move v0, v7

    int-to-float v0, v0

    move/from16 v20, v0

    add-float v20, v20, v9

    sub-int v21, v17, v7

    move/from16 v0, v21

    int-to-float v0, v0

    move/from16 v21, v0

    move-object/from16 v0, p2

    move/from16 v1, v20

    move/from16 v2, v21

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1624
    move/from16 v0, v17

    int-to-float v0, v0

    move/from16 v20, v0

    move-object/from16 v0, p2

    move v1, v9

    move/from16 v2, v20

    invoke-virtual {v0, v1, v2}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1628
    :cond_2bf
    return-void
.end method

.method public getCursorPathCursorAnchorMode(ILandroid/graphics/Path;Ljava/lang/CharSequence;)V
    .registers 13
    .parameter "point"
    .parameter "dest"
    .parameter "editingBuffer"

    .prologue
    const/high16 v8, 0x40a0

    const/high16 v7, 0x3f00

    .line 1633
    invoke-virtual {p2}, Landroid/graphics/Path;->reset()V

    .line 1635
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v3

    .line 1636
    .local v3, line:I
    invoke-virtual {p0, v3}, Landroid/text/Layout;->getLineTop(I)I

    move-result v5

    add-int/lit8 v4, v5, 0x1

    .line 1637
    .local v4, top:I
    add-int/lit8 v5, v3, 0x1

    invoke-virtual {p0, v5}, Landroid/text/Layout;->getLineTop(I)I

    move-result v5

    const/4 v6, 0x1

    sub-int v0, v5, v6

    .line 1639
    .local v0, bottom:I
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v5

    sub-float v1, v5, v7

    .line 1640
    .local v1, h1:F
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getSecondaryHorizontal(I)F

    move-result v5

    sub-float v2, v5, v7

    .line 1642
    .local v2, h2:F
    cmpg-float v5, v1, v7

    if-gez v5, :cond_2c

    .line 1643
    const/high16 v1, 0x3f00

    .line 1644
    :cond_2c
    cmpg-float v5, v2, v7

    if-gez v5, :cond_32

    .line 1645
    const/high16 v2, 0x3f00

    .line 1647
    :cond_32
    sub-float v5, v1, v8

    int-to-float v6, v4

    invoke-virtual {p2, v5, v6}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1648
    add-float v5, v1, v8

    int-to-float v6, v4

    invoke-virtual {p2, v5, v6}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1649
    int-to-float v5, v4

    invoke-virtual {p2, v1, v5}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1650
    int-to-float v5, v0

    invoke-virtual {p2, v1, v5}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1651
    sub-float v5, v1, v8

    int-to-float v6, v0

    invoke-virtual {p2, v5, v6}, Landroid/graphics/Path;->moveTo(FF)V

    .line 1652
    add-float v5, v1, v8

    int-to-float v6, v0

    invoke-virtual {p2, v5, v6}, Landroid/graphics/Path;->lineTo(FF)V

    .line 1653
    return-void
.end method

.method public abstract getEllipsisCount(I)I
.end method

.method public abstract getEllipsisStart(I)I
.end method

.method public getEllipsizedWidth()I
    .registers 2

    .prologue
    .line 760
    iget v0, p0, Landroid/text/Layout;->mWidth:I

    return v0
.end method

.method public getHeight()I
    .registers 2

    .prologue
    .line 780
    invoke-virtual {p0}, Landroid/text/Layout;->getLineCount()I

    move-result v0

    invoke-virtual {p0, v0}, Landroid/text/Layout;->getLineTop(I)I

    move-result v0

    return v0
.end method

.method public final getLineAscent(I)I
    .registers 5
    .parameter "line"

    .prologue
    .line 1237
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v0

    add-int/lit8 v1, p1, 0x1

    invoke-virtual {p0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v1

    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineDescent(I)I

    move-result v2

    sub-int/2addr v1, v2

    sub-int/2addr v0, v1

    return v0
.end method

.method public final getLineBaseline(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1228
    add-int/lit8 v0, p1, 0x1

    invoke-virtual {p0, v0}, Landroid/text/Layout;->getLineTop(I)I

    move-result v0

    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineDescent(I)I

    move-result v1

    sub-int/2addr v0, v1

    return v0
.end method

.method public final getLineBottom(I)I
    .registers 3
    .parameter "line"

    .prologue
    .line 1220
    add-int/lit8 v0, p1, 0x1

    invoke-virtual {p0, v0}, Landroid/text/Layout;->getLineTop(I)I

    move-result v0

    return v0
.end method

.method public getLineBounds(ILandroid/graphics/Rect;)I
    .registers 4
    .parameter "line"
    .parameter "bounds"

    .prologue
    .line 818
    if-eqz p2, :cond_17

    .line 819
    const/4 v0, 0x0

    iput v0, p2, Landroid/graphics/Rect;->left:I

    .line 820
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v0

    iput v0, p2, Landroid/graphics/Rect;->top:I

    .line 821
    iget v0, p0, Landroid/text/Layout;->mWidth:I

    iput v0, p2, Landroid/graphics/Rect;->right:I

    .line 822
    add-int/lit8 v0, p1, 0x1

    invoke-virtual {p0, v0}, Landroid/text/Layout;->getLineTop(I)I

    move-result v0

    iput v0, p2, Landroid/graphics/Rect;->bottom:I

    .line 824
    :cond_17
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineBaseline(I)I

    move-result v0

    return v0
.end method

.method public abstract getLineContainsTab(I)Z
.end method

.method public abstract getLineCount()I
.end method

.method public abstract getLineDescent(I)I
.end method

.method public abstract getLineDirections(I)Landroid/text/Layout$Directions;
.end method

.method public final getLineEnd(I)I
    .registers 3
    .parameter "line"

    .prologue
    .line 1178
    add-int/lit8 v0, p1, 0x1

    invoke-virtual {p0, v0}, Landroid/text/Layout;->getLineStart(I)I

    move-result v0

    return v0
.end method

.method public getLineForOffset(I)I
    .registers 7
    .parameter "offset"

    .prologue
    .line 1078
    invoke-virtual {p0}, Landroid/text/Layout;->getLineCount()I

    move-result v1

    .local v1, high:I
    const/4 v2, -0x1

    .line 1080
    .local v2, low:I
    :goto_5
    sub-int v3, v1, v2

    const/4 v4, 0x1

    if-le v3, v4, :cond_18

    .line 1081
    add-int v3, v1, v2

    div-int/lit8 v0, v3, 0x2

    .line 1083
    .local v0, guess:I
    invoke-virtual {p0, v0}, Landroid/text/Layout;->getLineStart(I)I

    move-result v3

    if-le v3, p1, :cond_16

    .line 1084
    move v1, v0

    goto :goto_5

    .line 1086
    :cond_16
    move v2, v0

    goto :goto_5

    .line 1089
    .end local v0           #guess:I
    :cond_18
    if-gez v2, :cond_1c

    .line 1090
    const/4 v3, 0x0

    .line 1092
    :goto_1b
    return v3

    :cond_1c
    move v3, v2

    goto :goto_1b
.end method

.method public getLineForVertical(I)I
    .registers 7
    .parameter "vertical"

    .prologue
    .line 1055
    invoke-virtual {p0}, Landroid/text/Layout;->getLineCount()I

    move-result v1

    .local v1, high:I
    const/4 v2, -0x1

    .line 1057
    .local v2, low:I
    :goto_5
    sub-int v3, v1, v2

    const/4 v4, 0x1

    if-le v3, v4, :cond_18

    .line 1058
    add-int v3, v1, v2

    div-int/lit8 v0, v3, 0x2

    .line 1060
    .local v0, guess:I
    invoke-virtual {p0, v0}, Landroid/text/Layout;->getLineTop(I)I

    move-result v3

    if-le v3, p1, :cond_16

    .line 1061
    move v1, v0

    goto :goto_5

    .line 1063
    :cond_16
    move v2, v0

    goto :goto_5

    .line 1066
    .end local v0           #guess:I
    :cond_18
    if-gez v2, :cond_1c

    .line 1067
    const/4 v3, 0x0

    .line 1069
    :goto_1b
    return v3

    :cond_1c
    move v3, v2

    goto :goto_1b
.end method

.method public getLineLeft(I)F
    .registers 10
    .parameter "line"

    .prologue
    const/4 v7, -0x1

    const/4 v6, 0x0

    .line 964
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphDirection(I)I

    move-result v1

    .line 965
    .local v1, dir:I
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphAlignment(I)Landroid/text/Layout$Alignment;

    move-result-object v0

    .line 967
    .local v0, align:Landroid/text/Layout$Alignment;
    sget-object v5, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;

    if-ne v0, v5, :cond_1d

    .line 968
    if-ne v1, v7, :cond_1b

    .line 969
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphRight(I)I

    move-result v5

    int-to-float v5, v5

    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineMax(I)F

    move-result v6

    sub-float/2addr v5, v6

    .line 982
    :goto_1a
    return v5

    :cond_1b
    move v5, v6

    .line 971
    goto :goto_1a

    .line 972
    :cond_1d
    sget-object v5, Landroid/text/Layout$Alignment;->ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;

    if-ne v0, v5, :cond_2e

    .line 973
    if-ne v1, v7, :cond_25

    move v5, v6

    .line 974
    goto :goto_1a

    .line 976
    :cond_25
    iget v5, p0, Landroid/text/Layout;->mWidth:I

    int-to-float v5, v5

    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineMax(I)F

    move-result v6

    sub-float/2addr v5, v6

    goto :goto_1a

    .line 978
    :cond_2e
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphLeft(I)I

    move-result v2

    .line 979
    .local v2, left:I
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphRight(I)I

    move-result v4

    .line 980
    .local v4, right:I
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineMax(I)F

    move-result v5

    float-to-int v5, v5

    and-int/lit8 v3, v5, -0x2

    .line 982
    .local v3, max:I
    sub-int v5, v4, v2

    sub-int/2addr v5, v3

    div-int/lit8 v5, v5, 0x2

    add-int/2addr v5, v2

    int-to-float v5, v5

    goto :goto_1a
.end method

.method public getLineMax(I)F
    .registers 4
    .parameter "line"

    .prologue
    .line 1018
    const/4 v0, 0x0

    const/4 v1, 0x0

    invoke-direct {p0, p1, v0, v1}, Landroid/text/Layout;->getLineMax(I[Ljava/lang/Object;Z)F

    move-result v0

    return v0
.end method

.method public getLineRight(I)F
    .registers 9
    .parameter "line"

    .prologue
    const/4 v6, -0x1

    .line 991
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphDirection(I)I

    move-result v1

    .line 992
    .local v1, dir:I
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphAlignment(I)Landroid/text/Layout$Alignment;

    move-result-object v0

    .line 994
    .local v0, align:Landroid/text/Layout$Alignment;
    sget-object v5, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;

    if-ne v0, v5, :cond_1e

    .line 995
    if-ne v1, v6, :cond_13

    .line 996
    iget v5, p0, Landroid/text/Layout;->mWidth:I

    int-to-float v5, v5

    .line 1009
    :goto_12
    return v5

    .line 998
    :cond_13
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphLeft(I)I

    move-result v5

    int-to-float v5, v5

    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineMax(I)F

    move-result v6

    add-float/2addr v5, v6

    goto :goto_12

    .line 999
    :cond_1e
    sget-object v5, Landroid/text/Layout$Alignment;->ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;

    if-ne v0, v5, :cond_2d

    .line 1000
    if-ne v1, v6, :cond_29

    .line 1001
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineMax(I)F

    move-result v5

    goto :goto_12

    .line 1003
    :cond_29
    iget v5, p0, Landroid/text/Layout;->mWidth:I

    int-to-float v5, v5

    goto :goto_12

    .line 1005
    :cond_2d
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphLeft(I)I

    move-result v2

    .line 1006
    .local v2, left:I
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphRight(I)I

    move-result v4

    .line 1007
    .local v4, right:I
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineMax(I)F

    move-result v5

    float-to-int v5, v5

    and-int/lit8 v3, v5, -0x2

    .line 1009
    .local v3, max:I
    sub-int v5, v4, v2

    sub-int/2addr v5, v3

    div-int/lit8 v5, v5, 0x2

    sub-int v5, v4, v5

    int-to-float v5, v5

    goto :goto_12
.end method

.method public abstract getLineStart(I)I
.end method

.method public abstract getLineTop(I)I
.end method

.method public getLineVisibleEnd(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1186
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v0

    add-int/lit8 v1, p1, 0x1

    invoke-virtual {p0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v1

    invoke-direct {p0, p1, v0, v1}, Landroid/text/Layout;->getLineVisibleEnd(III)I

    move-result v0

    return v0
.end method

.method public getLineWidth(I)F
    .registers 4
    .parameter "line"

    .prologue
    .line 1026
    const/4 v0, 0x0

    const/4 v1, 0x1

    invoke-direct {p0, p1, v0, v1}, Landroid/text/Layout;->getLineMax(I[Ljava/lang/Object;Z)F

    move-result v0

    return v0
.end method

.method public getOffsetForHorizontal(IF)I
    .registers 23
    .parameter "line"
    .parameter "horiz"

    .prologue
    .line 1100
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineEnd(I)I

    move-result v18

    const/16 v19, 0x1

    sub-int v13, v18, v19

    .line 1101
    .local v13, max:I
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v14

    .line 1102
    .local v14, min:I
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineDirections(I)Landroid/text/Layout$Directions;

    move-result-object v6

    .line 1104
    .local v6, dirs:Landroid/text/Layout$Directions;
    invoke-virtual/range {p0 .. p0}, Landroid/text/Layout;->getLineCount()I

    move-result v18

    const/16 v19, 0x1

    sub-int v18, v18, v19

    move/from16 v0, p1

    move/from16 v1, v18

    if-ne v0, v1, :cond_20

    .line 1105
    add-int/lit8 v13, v13, 0x1

    .line 1107
    :cond_20
    move v4, v14

    .line 1108
    .local v4, best:I
    move-object/from16 v0, p0

    move v1, v4

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v18

    sub-float v18, v18, p2

    invoke-static/range {v18 .. v18}, Ljava/lang/Math;->abs(F)F

    move-result v5

    .line 1110
    .local v5, bestdist:F
    move v9, v14

    .line 1111
    .local v9, here:I
    const/4 v11, 0x0

    .local v11, i:I
    :goto_30
    invoke-static {v6}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v18

    move-object/from16 v0, v18

    array-length v0, v0

    move/from16 v18, v0

    move v0, v11

    move/from16 v1, v18

    if-ge v0, v1, :cond_fe

    .line 1112
    invoke-static {v6}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v18

    aget-short v18, v18, v11

    add-int v17, v9, v18

    .line 1113
    .local v17, there:I
    and-int/lit8 v18, v11, 0x1

    if-nez v18, :cond_91

    const/16 v18, 0x1

    move/from16 v16, v18

    .line 1115
    .local v16, swap:I
    :goto_4e
    move/from16 v0, v17

    move v1, v13

    if-le v0, v1, :cond_55

    .line 1116
    move/from16 v17, v13

    .line 1118
    :cond_55
    const/16 v18, 0x1

    sub-int v18, v17, v18

    add-int/lit8 v10, v18, 0x1

    .local v10, high:I
    add-int/lit8 v18, v9, 0x1

    const/16 v19, 0x1

    sub-int v12, v18, v19

    .line 1120
    .local v12, low:I
    :goto_61
    sub-int v18, v10, v12

    const/16 v19, 0x1

    move/from16 v0, v18

    move/from16 v1, v19

    if-le v0, v1, :cond_98

    .line 1121
    add-int v18, v10, v12

    div-int/lit8 v8, v18, 0x2

    .line 1122
    .local v8, guess:I
    move-object/from16 v0, p0

    move v1, v8

    invoke-direct {v0, v1}, Landroid/text/Layout;->getOffsetAtStartOf(I)I

    move-result v2

    .line 1124
    .local v2, adguess:I
    move-object/from16 v0, p0

    move v1, v2

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v18

    move/from16 v0, v16

    int-to-float v0, v0

    move/from16 v19, v0

    mul-float v18, v18, v19

    move/from16 v0, v16

    int-to-float v0, v0

    move/from16 v19, v0

    mul-float v19, v19, p2

    cmpl-float v18, v18, v19

    if-ltz v18, :cond_96

    .line 1125
    move v10, v8

    goto :goto_61

    .line 1113
    .end local v2           #adguess:I
    .end local v8           #guess:I
    .end local v10           #high:I
    .end local v12           #low:I
    .end local v16           #swap:I
    :cond_91
    const/16 v18, -0x1

    move/from16 v16, v18

    goto :goto_4e

    .line 1127
    .restart local v2       #adguess:I
    .restart local v8       #guess:I
    .restart local v10       #high:I
    .restart local v12       #low:I
    .restart local v16       #swap:I
    :cond_96
    move v12, v8

    goto :goto_61

    .line 1130
    .end local v2           #adguess:I
    .end local v8           #guess:I
    :cond_98
    add-int/lit8 v18, v9, 0x1

    move v0, v12

    move/from16 v1, v18

    if-ge v0, v1, :cond_a1

    .line 1131
    add-int/lit8 v12, v9, 0x1

    .line 1133
    :cond_a1
    move v0, v12

    move/from16 v1, v17

    if-ge v0, v1, :cond_e5

    .line 1134
    move-object/from16 v0, p0

    move v1, v12

    invoke-direct {v0, v1}, Landroid/text/Layout;->getOffsetAtStartOf(I)I

    move-result v12

    .line 1136
    move-object/from16 v0, p0

    move v1, v12

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v18

    sub-float v18, v18, p2

    invoke-static/range {v18 .. v18}, Ljava/lang/Math;->abs(F)F

    move-result v7

    .line 1138
    .local v7, dist:F
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move v1, v12

    invoke-static {v0, v1}, Landroid/text/TextUtils;->getOffsetAfter(Ljava/lang/CharSequence;I)I

    move-result v3

    .line 1139
    .local v3, aft:I
    move v0, v3

    move/from16 v1, v17

    if-ge v0, v1, :cond_df

    .line 1140
    move-object/from16 v0, p0

    move v1, v3

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v18

    sub-float v18, v18, p2

    invoke-static/range {v18 .. v18}, Ljava/lang/Math;->abs(F)F

    move-result v15

    .line 1142
    .local v15, other:F
    cmpg-float v18, v15, v7

    if-gez v18, :cond_df

    .line 1143
    move v7, v15

    .line 1144
    move v12, v3

    .line 1148
    .end local v15           #other:F
    :cond_df
    cmpg-float v18, v7, v5

    if-gez v18, :cond_e5

    .line 1149
    move v5, v7

    .line 1150
    move v4, v12

    .line 1154
    .end local v3           #aft:I
    .end local v7           #dist:F
    :cond_e5
    move-object/from16 v0, p0

    move v1, v9

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v18

    sub-float v18, v18, p2

    invoke-static/range {v18 .. v18}, Ljava/lang/Math;->abs(F)F

    move-result v7

    .line 1156
    .restart local v7       #dist:F
    cmpg-float v18, v7, v5

    if-gez v18, :cond_f8

    .line 1157
    move v5, v7

    .line 1158
    move v4, v9

    .line 1161
    :cond_f8
    move/from16 v9, v17

    .line 1111
    add-int/lit8 v11, v11, 0x1

    goto/16 :goto_30

    .line 1164
    .end local v7           #dist:F
    .end local v10           #high:I
    .end local v12           #low:I
    .end local v16           #swap:I
    .end local v17           #there:I
    :cond_fe
    move-object/from16 v0, p0

    move v1, v13

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v18

    sub-float v18, v18, p2

    invoke-static/range {v18 .. v18}, Ljava/lang/Math;->abs(F)F

    move-result v7

    .line 1166
    .restart local v7       #dist:F
    cmpg-float v18, v7, v5

    if-gez v18, :cond_111

    .line 1167
    move v5, v7

    .line 1168
    move v4, v13

    .line 1171
    :cond_111
    return v4
.end method

.method public getOffsetToLeftOf(I)I
    .registers 20
    .parameter "offset"

    .prologue
    .line 1245
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v13

    .line 1246
    .local v13, line:I
    move-object/from16 v0, p0

    move v1, v13

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v14

    .line 1247
    .local v14, start:I
    move-object/from16 v0, p0

    move v1, v13

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineEnd(I)I

    move-result v8

    .line 1248
    .local v8, end:I
    move-object/from16 v0, p0

    move v1, v13

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineDirections(I)Landroid/text/Layout$Directions;

    move-result-object v7

    .line 1250
    .local v7, dirs:Landroid/text/Layout$Directions;
    invoke-virtual/range {p0 .. p0}, Landroid/text/Layout;->getLineCount()I

    move-result v16

    const/16 v17, 0x1

    sub-int v16, v16, v17

    move v0, v13

    move/from16 v1, v16

    if-eq v0, v1, :cond_28

    .line 1251
    add-int/lit8 v8, v8, -0x1

    .line 1253
    :cond_28
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v11

    .line 1255
    .local v11, horiz:F
    move/from16 v3, p1

    .line 1256
    .local v3, best:I
    const/high16 v4, -0x3100

    .line 1259
    .local v4, besth:F
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    move-object/from16 v0, v16

    move/from16 v1, p1

    invoke-static {v0, v1}, Landroid/text/TextUtils;->getOffsetBefore(Ljava/lang/CharSequence;I)I

    move-result v5

    .line 1260
    .local v5, candidate:I
    if-lt v5, v14, :cond_53

    if-gt v5, v8, :cond_53

    .line 1261
    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1263
    .local v9, h:F
    cmpg-float v16, v9, v11

    if-gez v16, :cond_53

    cmpl-float v16, v9, v4

    if-lez v16, :cond_53

    .line 1264
    move v3, v5

    .line 1265
    move v4, v9

    .line 1269
    .end local v9           #h:F
    :cond_53
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    move-object/from16 v0, v16

    move/from16 v1, p1

    invoke-static {v0, v1}, Landroid/text/TextUtils;->getOffsetAfter(Ljava/lang/CharSequence;I)I

    move-result v5

    .line 1270
    if-lt v5, v14, :cond_76

    if-gt v5, v8, :cond_76

    .line 1271
    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1273
    .restart local v9       #h:F
    cmpg-float v16, v9, v11

    if-gez v16, :cond_76

    cmpl-float v16, v9, v4

    if-lez v16, :cond_76

    .line 1274
    move v3, v5

    .line 1275
    move v4, v9

    .line 1279
    .end local v9           #h:F
    :cond_76
    move v10, v14

    .line 1280
    .local v10, here:I
    const/4 v12, 0x0

    .local v12, i:I
    :goto_78
    invoke-static {v7}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v16

    move-object/from16 v0, v16

    array-length v0, v0

    move/from16 v16, v0

    move v0, v12

    move/from16 v1, v16

    if-ge v0, v1, :cond_ea

    .line 1281
    invoke-static {v7}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v16

    aget-short v16, v16, v12

    add-int v15, v10, v16

    .line 1282
    .local v15, there:I
    if-le v15, v8, :cond_91

    .line 1283
    move v15, v8

    .line 1285
    :cond_91
    move-object/from16 v0, p0

    move v1, v10

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1287
    .restart local v9       #h:F
    cmpg-float v16, v9, v11

    if-gez v16, :cond_a2

    cmpl-float v16, v9, v4

    if-lez v16, :cond_a2

    .line 1288
    move v3, v10

    .line 1289
    move v4, v9

    .line 1292
    :cond_a2
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    move-object/from16 v0, v16

    move v1, v10

    invoke-static {v0, v1}, Landroid/text/TextUtils;->getOffsetAfter(Ljava/lang/CharSequence;I)I

    move-result v5

    .line 1293
    if-lt v5, v14, :cond_c4

    if-gt v5, v8, :cond_c4

    .line 1294
    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1296
    cmpg-float v16, v9, v11

    if-gez v16, :cond_c4

    cmpl-float v16, v9, v4

    if-lez v16, :cond_c4

    .line 1297
    move v3, v5

    .line 1298
    move v4, v9

    .line 1302
    :cond_c4
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    move-object/from16 v0, v16

    move v1, v15

    invoke-static {v0, v1}, Landroid/text/TextUtils;->getOffsetBefore(Ljava/lang/CharSequence;I)I

    move-result v5

    .line 1303
    if-lt v5, v14, :cond_e6

    if-gt v5, v8, :cond_e6

    .line 1304
    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1306
    cmpg-float v16, v9, v11

    if-gez v16, :cond_e6

    cmpl-float v16, v9, v4

    if-lez v16, :cond_e6

    .line 1307
    move v3, v5

    .line 1308
    move v4, v9

    .line 1312
    :cond_e6
    move v10, v15

    .line 1280
    add-int/lit8 v12, v12, 0x1

    goto :goto_78

    .line 1315
    .end local v9           #h:F
    .end local v15           #there:I
    :cond_ea
    move-object/from16 v0, p0

    move v1, v8

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1317
    .restart local v9       #h:F
    cmpg-float v16, v9, v11

    if-gez v16, :cond_fb

    cmpl-float v16, v9, v4

    if-lez v16, :cond_fb

    .line 1318
    move v3, v8

    .line 1319
    move v4, v9

    .line 1322
    :cond_fb
    move v0, v3

    move/from16 v1, p1

    if-eq v0, v1, :cond_103

    move/from16 v16, v3

    .line 1336
    :goto_102
    return v16

    .line 1325
    :cond_103
    move-object/from16 v0, p0

    move v1, v13

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getParagraphDirection(I)I

    move-result v6

    .line 1327
    .local v6, dir:I
    if-lez v6, :cond_123

    .line 1328
    if-nez v13, :cond_111

    move/from16 v16, v3

    .line 1329
    goto :goto_102

    .line 1331
    :cond_111
    const/16 v16, 0x1

    sub-int v16, v13, v16

    const v17, 0x461c4000

    move-object/from16 v0, p0

    move/from16 v1, v16

    move/from16 v2, v17

    invoke-virtual {v0, v1, v2}, Landroid/text/Layout;->getOffsetForHorizontal(IF)I

    move-result v16

    goto :goto_102

    .line 1333
    :cond_123
    invoke-virtual/range {p0 .. p0}, Landroid/text/Layout;->getLineCount()I

    move-result v16

    const/16 v17, 0x1

    sub-int v16, v16, v17

    move v0, v13

    move/from16 v1, v16

    if-ne v0, v1, :cond_133

    move/from16 v16, v3

    .line 1334
    goto :goto_102

    .line 1336
    :cond_133
    add-int/lit8 v16, v13, 0x1

    const v17, 0x461c4000

    move-object/from16 v0, p0

    move/from16 v1, v16

    move/from16 v2, v17

    invoke-virtual {v0, v1, v2}, Landroid/text/Layout;->getOffsetForHorizontal(IF)I

    move-result v16

    goto :goto_102
.end method

.method public getOffsetToRightOf(I)I
    .registers 20
    .parameter "offset"

    .prologue
    .line 1345
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v13

    .line 1346
    .local v13, line:I
    move-object/from16 v0, p0

    move v1, v13

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v14

    .line 1347
    .local v14, start:I
    move-object/from16 v0, p0

    move v1, v13

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineEnd(I)I

    move-result v8

    .line 1348
    .local v8, end:I
    move-object/from16 v0, p0

    move v1, v13

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineDirections(I)Landroid/text/Layout$Directions;

    move-result-object v7

    .line 1350
    .local v7, dirs:Landroid/text/Layout$Directions;
    invoke-virtual/range {p0 .. p0}, Landroid/text/Layout;->getLineCount()I

    move-result v16

    const/16 v17, 0x1

    sub-int v16, v16, v17

    move v0, v13

    move/from16 v1, v16

    if-eq v0, v1, :cond_28

    .line 1351
    add-int/lit8 v8, v8, -0x1

    .line 1353
    :cond_28
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v11

    .line 1355
    .local v11, horiz:F
    move/from16 v3, p1

    .line 1356
    .local v3, best:I
    const/high16 v4, 0x4f00

    .line 1359
    .local v4, besth:F
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    move-object/from16 v0, v16

    move/from16 v1, p1

    invoke-static {v0, v1}, Landroid/text/TextUtils;->getOffsetBefore(Ljava/lang/CharSequence;I)I

    move-result v5

    .line 1360
    .local v5, candidate:I
    if-lt v5, v14, :cond_53

    if-gt v5, v8, :cond_53

    .line 1361
    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1363
    .local v9, h:F
    cmpl-float v16, v9, v11

    if-lez v16, :cond_53

    cmpg-float v16, v9, v4

    if-gez v16, :cond_53

    .line 1364
    move v3, v5

    .line 1365
    move v4, v9

    .line 1369
    .end local v9           #h:F
    :cond_53
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    move-object/from16 v0, v16

    move/from16 v1, p1

    invoke-static {v0, v1}, Landroid/text/TextUtils;->getOffsetAfter(Ljava/lang/CharSequence;I)I

    move-result v5

    .line 1370
    if-lt v5, v14, :cond_76

    if-gt v5, v8, :cond_76

    .line 1371
    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1373
    .restart local v9       #h:F
    cmpl-float v16, v9, v11

    if-lez v16, :cond_76

    cmpg-float v16, v9, v4

    if-gez v16, :cond_76

    .line 1374
    move v3, v5

    .line 1375
    move v4, v9

    .line 1379
    .end local v9           #h:F
    :cond_76
    move v10, v14

    .line 1380
    .local v10, here:I
    const/4 v12, 0x0

    .local v12, i:I
    :goto_78
    invoke-static {v7}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v16

    move-object/from16 v0, v16

    array-length v0, v0

    move/from16 v16, v0

    move v0, v12

    move/from16 v1, v16

    if-ge v0, v1, :cond_ea

    .line 1381
    invoke-static {v7}, Landroid/text/Layout$Directions;->access$000(Landroid/text/Layout$Directions;)[S

    move-result-object v16

    aget-short v16, v16, v12

    add-int v15, v10, v16

    .line 1382
    .local v15, there:I
    if-le v15, v8, :cond_91

    .line 1383
    move v15, v8

    .line 1385
    :cond_91
    move-object/from16 v0, p0

    move v1, v10

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1387
    .restart local v9       #h:F
    cmpl-float v16, v9, v11

    if-lez v16, :cond_a2

    cmpg-float v16, v9, v4

    if-gez v16, :cond_a2

    .line 1388
    move v3, v10

    .line 1389
    move v4, v9

    .line 1392
    :cond_a2
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    move-object/from16 v0, v16

    move v1, v10

    invoke-static {v0, v1}, Landroid/text/TextUtils;->getOffsetAfter(Ljava/lang/CharSequence;I)I

    move-result v5

    .line 1393
    if-lt v5, v14, :cond_c4

    if-gt v5, v8, :cond_c4

    .line 1394
    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1396
    cmpl-float v16, v9, v11

    if-lez v16, :cond_c4

    cmpg-float v16, v9, v4

    if-gez v16, :cond_c4

    .line 1397
    move v3, v5

    .line 1398
    move v4, v9

    .line 1402
    :cond_c4
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object/from16 v16, v0

    move-object/from16 v0, v16

    move v1, v15

    invoke-static {v0, v1}, Landroid/text/TextUtils;->getOffsetBefore(Ljava/lang/CharSequence;I)I

    move-result v5

    .line 1403
    if-lt v5, v14, :cond_e6

    if-gt v5, v8, :cond_e6

    .line 1404
    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1406
    cmpl-float v16, v9, v11

    if-lez v16, :cond_e6

    cmpg-float v16, v9, v4

    if-gez v16, :cond_e6

    .line 1407
    move v3, v5

    .line 1408
    move v4, v9

    .line 1412
    :cond_e6
    move v10, v15

    .line 1380
    add-int/lit8 v12, v12, 0x1

    goto :goto_78

    .line 1415
    .end local v9           #h:F
    .end local v15           #there:I
    :cond_ea
    move-object/from16 v0, p0

    move v1, v8

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getPrimaryHorizontal(I)F

    move-result v9

    .line 1417
    .restart local v9       #h:F
    cmpl-float v16, v9, v11

    if-lez v16, :cond_fb

    cmpg-float v16, v9, v4

    if-gez v16, :cond_fb

    .line 1418
    move v3, v8

    .line 1419
    move v4, v9

    .line 1422
    :cond_fb
    move v0, v3

    move/from16 v1, p1

    if-eq v0, v1, :cond_103

    move/from16 v16, v3

    .line 1436
    :goto_102
    return v16

    .line 1425
    :cond_103
    move-object/from16 v0, p0

    move v1, v13

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getParagraphDirection(I)I

    move-result v6

    .line 1427
    .local v6, dir:I
    if-lez v6, :cond_12c

    .line 1428
    invoke-virtual/range {p0 .. p0}, Landroid/text/Layout;->getLineCount()I

    move-result v16

    const/16 v17, 0x1

    sub-int v16, v16, v17

    move v0, v13

    move/from16 v1, v16

    if-ne v0, v1, :cond_11c

    move/from16 v16, v3

    .line 1429
    goto :goto_102

    .line 1431
    :cond_11c
    add-int/lit8 v16, v13, 0x1

    const v17, -0x39e3c000

    move-object/from16 v0, p0

    move/from16 v1, v16

    move/from16 v2, v17

    invoke-virtual {v0, v1, v2}, Landroid/text/Layout;->getOffsetForHorizontal(IF)I

    move-result v16

    goto :goto_102

    .line 1433
    :cond_12c
    if-nez v13, :cond_131

    move/from16 v16, v3

    .line 1434
    goto :goto_102

    .line 1436
    :cond_131
    const/16 v16, 0x1

    sub-int v16, v13, v16

    const v17, -0x39e3c000

    move-object/from16 v0, p0

    move/from16 v1, v16

    move/from16 v2, v17

    invoke-virtual {v0, v1, v2}, Landroid/text/Layout;->getOffsetForHorizontal(IF)I

    move-result v16

    goto :goto_102
.end method

.method public final getPaint()Landroid/text/TextPaint;
    .registers 2

    .prologue
    .line 745
    iget-object v0, p0, Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;

    return-object v0
.end method

.method public final getParagraphAlignment(I)Landroid/text/Layout$Alignment;
    .registers 9
    .parameter "line"

    .prologue
    .line 1761
    iget-object v0, p0, Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;

    .line 1763
    .local v0, align:Landroid/text/Layout$Alignment;
    iget-boolean v4, p0, Landroid/text/Layout;->mSpannedText:Z

    if-eqz v4, :cond_26

    .line 1764
    iget-object v1, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    check-cast v1, Landroid/text/Spanned;

    .line 1765
    .local v1, sp:Landroid/text/Spanned;
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v4

    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineEnd(I)I

    move-result v5

    const-class v6, Landroid/text/style/AlignmentSpan;

    invoke-interface {v1, v4, v5, v6}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v3

    check-cast v3, [Landroid/text/style/AlignmentSpan;

    .line 1769
    .local v3, spans:[Landroid/text/style/AlignmentSpan;
    array-length v2, v3

    .line 1770
    .local v2, spanLength:I
    if-lez v2, :cond_26

    .line 1771
    const/4 v4, 0x1

    sub-int v4, v2, v4

    aget-object v4, v3, v4

    invoke-interface {v4}, Landroid/text/style/AlignmentSpan;->getAlignment()Landroid/text/Layout$Alignment;

    move-result-object v0

    .line 1775
    .end local v1           #sp:Landroid/text/Spanned;
    .end local v2           #spanLength:I
    .end local v3           #spans:[Landroid/text/style/AlignmentSpan;
    :cond_26
    return-object v0
.end method

.method public abstract getParagraphDirection(I)I
.end method

.method public final getParagraphLeft(I)I
    .registers 18
    .parameter "line"

    .prologue
    const/4 v15, 0x1

    .line 1782
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getParagraphDirection(I)I

    move-result v3

    .line 1784
    .local v3, dir:I
    const/4 v5, 0x0

    .line 1786
    .local v5, left:I
    const/4 v8, 0x0

    .line 1787
    .local v8, par:Z
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v7

    .line 1788
    .local v7, off:I
    if-eqz v7, :cond_1c

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v12, v0

    sub-int v13, v7, v15

    invoke-interface {v12, v13}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v12

    const/16 v13, 0xa

    if-ne v12, v13, :cond_1d

    .line 1789
    :cond_1c
    const/4 v8, 0x1

    .line 1791
    :cond_1d
    if-ne v3, v15, :cond_61

    .line 1792
    move-object/from16 v0, p0

    iget-boolean v0, v0, Landroid/text/Layout;->mSpannedText:Z

    move v12, v0

    if-eqz v12, :cond_61

    .line 1793
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    move-object v9, v0

    check-cast v9, Landroid/text/Spanned;

    .line 1794
    .local v9, sp:Landroid/text/Spanned;
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v12

    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineEnd(I)I

    move-result v13

    const-class v14, Landroid/text/style/LeadingMarginSpan;

    invoke-interface {v9, v12, v13, v14}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v11

    check-cast v11, [Landroid/text/style/LeadingMarginSpan;

    .line 1798
    .local v11, spans:[Landroid/text/style/LeadingMarginSpan;
    const/4 v4, 0x0

    .local v4, i:I
    :goto_3e
    array-length v12, v11

    if-ge v4, v12, :cond_61

    .line 1799
    move v6, v8

    .line 1800
    .local v6, margin:Z
    aget-object v10, v11, v4

    .line 1801
    .local v10, span:Landroid/text/style/LeadingMarginSpan;
    instance-of v12, v10, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;

    if-eqz v12, :cond_56

    .line 1802
    move-object v0, v10

    check-cast v0, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;

    move-object v12, v0

    invoke-interface {v12}, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;->getLeadingMarginLineCount()I

    move-result v2

    .line 1803
    .local v2, count:I
    move v0, v2

    move/from16 v1, p1

    if-lt v0, v1, :cond_5e

    move v6, v15

    .line 1805
    .end local v2           #count:I
    :cond_56
    :goto_56
    invoke-interface {v10, v6}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v12

    add-int/2addr v5, v12

    .line 1798
    add-int/lit8 v4, v4, 0x1

    goto :goto_3e

    .line 1803
    .restart local v2       #count:I
    :cond_5e
    const/4 v12, 0x0

    move v6, v12

    goto :goto_56

    .line 1810
    .end local v2           #count:I
    .end local v4           #i:I
    .end local v6           #margin:Z
    .end local v9           #sp:Landroid/text/Spanned;
    .end local v10           #span:Landroid/text/style/LeadingMarginSpan;
    .end local v11           #spans:[Landroid/text/style/LeadingMarginSpan;
    :cond_61
    return v5
.end method

.method public final getParagraphRight(I)I
    .registers 12
    .parameter "line"

    .prologue
    .line 1817
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getParagraphDirection(I)I

    move-result v0

    .line 1819
    .local v0, dir:I
    iget v4, p0, Landroid/text/Layout;->mWidth:I

    .line 1821
    .local v4, right:I
    const/4 v3, 0x0

    .line 1822
    .local v3, par:Z
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v2

    .line 1823
    .local v2, off:I
    if-eqz v2, :cond_1a

    iget-object v7, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    const/4 v8, 0x1

    sub-int v8, v2, v8

    invoke-interface {v7, v8}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v7

    const/16 v8, 0xa

    if-ne v7, v8, :cond_1b

    .line 1824
    :cond_1a
    const/4 v3, 0x1

    .line 1827
    :cond_1b
    const/4 v7, -0x1

    if-ne v0, v7, :cond_44

    .line 1828
    iget-boolean v7, p0, Landroid/text/Layout;->mSpannedText:Z

    if-eqz v7, :cond_44

    .line 1829
    iget-object v5, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    check-cast v5, Landroid/text/Spanned;

    .line 1830
    .local v5, sp:Landroid/text/Spanned;
    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v7

    invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineEnd(I)I

    move-result v8

    const-class v9, Landroid/text/style/LeadingMarginSpan;

    invoke-interface {v5, v7, v8, v9}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v6

    check-cast v6, [Landroid/text/style/LeadingMarginSpan;

    .line 1834
    .local v6, spans:[Landroid/text/style/LeadingMarginSpan;
    const/4 v1, 0x0

    .local v1, i:I
    :goto_37
    array-length v7, v6

    if-ge v1, v7, :cond_44

    .line 1835
    aget-object v7, v6, v1

    invoke-interface {v7, v3}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v7

    sub-int/2addr v4, v7

    .line 1834
    add-int/lit8 v1, v1, 0x1

    goto :goto_37

    .line 1840
    .end local v1           #i:I
    .end local v5           #sp:Landroid/text/Spanned;
    .end local v6           #spans:[Landroid/text/style/LeadingMarginSpan;
    :cond_44
    return v4
.end method

.method public getPrimaryHorizontal(I)F
    .registers 4
    .parameter "offset"

    .prologue
    .line 888
    const/4 v0, 0x0

    const/4 v1, 0x1

    invoke-direct {p0, p1, v0, v1}, Landroid/text/Layout;->getHorizontal(IZZ)F

    move-result v0

    return v0
.end method

.method public getSecondaryHorizontal(I)F
    .registers 3
    .parameter "offset"

    .prologue
    const/4 v0, 0x1

    .line 897
    invoke-direct {p0, p1, v0, v0}, Landroid/text/Layout;->getHorizontal(IZZ)F

    move-result v0

    return v0
.end method

.method public getSelectionPath(IILandroid/graphics/Path;)V
    .registers 27
    .parameter "start"
    .parameter "end"
    .parameter "dest"

    .prologue
    .line 1694
    invoke-virtual/range {p3 .. p3}, Landroid/graphics/Path;->reset()V

    .line 1696
    move/from16 v0, p1

    move/from16 v1, p2

    if-ne v0, v1, :cond_a

    .line 1754
    :cond_9
    :goto_9
    return-void

    .line 1699
    :cond_a
    move/from16 v0, p2

    move/from16 v1, p1

    if-ge v0, v1, :cond_16

    .line 1700
    move/from16 v21, p2

    .line 1701
    .local v21, temp:I
    move/from16 p2, p1

    .line 1702
    move/from16 p1, v21

    .line 1705
    .end local v21           #temp:I
    :cond_16
    invoke-virtual/range {p0 .. p1}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v6

    .line 1706
    .local v6, startline:I
    move-object/from16 v0, p0

    move/from16 v1, p2

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v19

    .line 1708
    .local v19, endline:I
    move-object/from16 v0, p0

    move v1, v6

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v9

    .line 1709
    .local v9, top:I
    move-object/from16 v0, p0

    move/from16 v1, v19

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineBottom(I)I

    move-result v10

    .line 1711
    .local v10, bottom:I
    move v0, v6

    move/from16 v1, v19

    if-ne v0, v1, :cond_42

    move-object/from16 v5, p0

    move/from16 v7, p1

    move/from16 v8, p2

    move-object/from16 v11, p3

    .line 1712
    invoke-direct/range {v5 .. v11}, Landroid/text/Layout;->addSelection(IIIIILandroid/graphics/Path;)V

    goto :goto_9

    .line 1714
    :cond_42
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/Layout;->mWidth:I

    move v5, v0

    move v0, v5

    int-to-float v0, v0

    move/from16 v22, v0

    .line 1716
    .local v22, width:F
    move-object/from16 v0, p0

    move v1, v6

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineEnd(I)I

    move-result v14

    move-object/from16 v0, p0

    move v1, v6

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineBottom(I)I

    move-result v16

    move-object/from16 v11, p0

    move v12, v6

    move/from16 v13, p1

    move v15, v9

    move-object/from16 v17, p3

    invoke-direct/range {v11 .. v17}, Landroid/text/Layout;->addSelection(IIIIILandroid/graphics/Path;)V

    .line 1726
    const/4 v5, 0x1

    sub-int v5, p2, v5

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineForOffset(I)I

    move-result v18

    .line 1728
    .local v18, beforeEndLine:I
    add-int/lit8 v20, v6, 0x1

    .end local v6           #startline:I
    .local v20, i:I
    :goto_70
    move/from16 v0, v20

    move/from16 v1, v19

    if-ge v0, v1, :cond_cb

    .line 1729
    move/from16 v0, v20

    move/from16 v1, v18

    if-lt v0, v1, :cond_ae

    .line 1730
    move-object/from16 v0, p0

    move/from16 v1, v20

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v9

    .line 1731
    move-object/from16 v0, p0

    move/from16 v1, v20

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineBottom(I)I

    move-result v10

    .line 1732
    const/4 v12, 0x0

    int-to-float v13, v9

    move-object/from16 v0, p0

    move/from16 v1, v20

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineVisibleEnd(I)I

    move-result v5

    const/4 v6, 0x1

    const/4 v7, 0x0

    move-object/from16 v0, p0

    move v1, v5

    move v2, v6

    move v3, v7

    move/from16 v4, v20

    invoke-direct {v0, v1, v2, v3, v4}, Landroid/text/Layout;->getHorizontal(IZZI)F

    move-result v14

    int-to-float v15, v10

    sget-object v16, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;

    move-object/from16 v11, p3

    invoke-virtual/range {v11 .. v16}, Landroid/graphics/Path;->addRect(FFFFLandroid/graphics/Path$Direction;)V

    .line 1728
    :goto_ab
    add-int/lit8 v20, v20, 0x1

    goto :goto_70

    .line 1734
    :cond_ae
    move-object/from16 v0, p0

    move/from16 v1, v20

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v9

    .line 1735
    move-object/from16 v0, p0

    move/from16 v1, v20

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineBottom(I)I

    move-result v10

    .line 1736
    const/4 v12, 0x0

    int-to-float v13, v9

    int-to-float v15, v10

    sget-object v16, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;

    move-object/from16 v11, p3

    move/from16 v14, v22

    invoke-virtual/range {v11 .. v16}, Landroid/graphics/Path;->addRect(FFFFLandroid/graphics/Path$Direction;)V

    goto :goto_ab

    .line 1740
    :cond_cb
    move-object/from16 v0, p0

    move/from16 v1, v19

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I

    move-result v9

    .line 1741
    move-object/from16 v0, p0

    move/from16 v1, v19

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineBottom(I)I

    move-result v10

    .line 1743
    sub-int v5, v19, v18

    const/4 v6, 0x1

    if-eq v5, v6, :cond_9

    .line 1746
    move-object/from16 v0, p0

    move/from16 v1, v19

    invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I

    move-result v13

    move-object/from16 v11, p0

    move/from16 v12, v19

    move/from16 v14, p2

    move v15, v9

    move/from16 v16, v10

    move-object/from16 v17, p3

    invoke-direct/range {v11 .. v17}, Landroid/text/Layout;->addSelection(IIIIILandroid/graphics/Path;)V

    goto/16 :goto_9
.end method

.method public final getSpacingAdd()F
    .registers 2

    .prologue
    .line 801
    iget v0, p0, Landroid/text/Layout;->mSpacingAdd:F

    return v0
.end method

.method public final getSpacingMultiplier()F
    .registers 2

    .prologue
    .line 794
    iget v0, p0, Landroid/text/Layout;->mSpacingMult:F

    return v0
.end method

.method public final getText()Ljava/lang/CharSequence;
    .registers 2

    .prologue
    .line 736
    iget-object v0, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    return-object v0
.end method

.method public abstract getTopPadding()I
.end method

.method public final getWidth()I
    .registers 2

    .prologue
    .line 752
    iget v0, p0, Landroid/text/Layout;->mWidth:I

    return v0
.end method

.method public final increaseWidthTo(I)V
    .registers 4
    .parameter "wid"

    .prologue
    .line 769
    iget v0, p0, Landroid/text/Layout;->mWidth:I

    if-ge p1, v0, :cond_c

    .line 770
    new-instance v0, Ljava/lang/RuntimeException;

    const-string v1, "attempted to reduce Layout width"

    invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 773
    :cond_c
    iput p1, p0, Landroid/text/Layout;->mWidth:I

    .line 774
    return-void
.end method

.method protected final isSpanned()Z
    .registers 2

    .prologue
    .line 2243
    iget-boolean v0, p0, Landroid/text/Layout;->mSpannedText:Z

    return v0
.end method

.method replaceWith(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
    .registers 10
    .parameter "text"
    .parameter "paint"
    .parameter "width"
    .parameter "align"
    .parameter "spacingmult"
    .parameter "spacingadd"

    .prologue
    .line 141
    if-gez p3, :cond_21

    .line 142
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "Layout: "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, " < 0"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 145
    :cond_21
    iput-object p1, p0, Landroid/text/Layout;->mText:Ljava/lang/CharSequence;

    .line 146
    iput-object p2, p0, Landroid/text/Layout;->mPaint:Landroid/text/TextPaint;

    .line 147
    iput p3, p0, Landroid/text/Layout;->mWidth:I

    .line 148
    iput-object p4, p0, Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;

    .line 149
    iput p5, p0, Landroid/text/Layout;->mSpacingMult:F

    .line 150
    iput p6, p0, Landroid/text/Layout;->mSpacingAdd:F

    .line 151
    instance-of v0, p1, Landroid/text/Spanned;

    iput-boolean v0, p0, Landroid/text/Layout;->mSpannedText:Z

    .line 152
    return-void
.end method
